[英]EasyGUI and Python if/else and loop
我的if / else语句和EasyGUI选择框似乎出现了一些问题。 我知道,如果用户按下“取消”,它将返回“无”。 我的代码总是输入“ Else”语句。 另外,我的第二个For循环似乎没有迭代。 有没有更好的方法来选择我想要的对象(国家名称)? 到目前为止,这是我的代码,带有调试输出。
更新:问题是我出于某种原因使用Mac。 我使用我的PC,它按预期工作。
根据此 , choicebox
返回None
则取消按钮被按下,而不是字符串'None'
。 将您的条件更改为if choice is None:
它应该起作用。
第二个for
循环的问题是csvdict
是一个迭代器,在第一个for
循环中使用它后,该迭代器将耗尽。 您可以创建一个新的迭代器,也可以将文件内容存储在列表或字典中(如果数据太多)。 您已经为“ country
字段执行了此操作,但是您似乎需要所有字段。 最好的做法是创建一个dict
将country
名称映射到包含其他字段的列表,因此您可以快速访问它们,而不必再次遍历所有争用条件。
// instead of your first for loop
choices = dict()
for line in csvdict:
choices[line['Country']] = line
...
// instead of your second for loop
if choice in choices:
line = choices[choice]
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.