繁体   English   中英

EasyGUI和Python if / else和循环

[英]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字段执行了此操作,但是您似乎需要所有字段。 最好的做法是创建一个dictcountry名称映射到包含其他字段的列表,因此您可以快速访问它们,而不必再次遍历所有争用条件。

// 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM