EasyGUI和Python if / else和loop

时间:2014-02-23 19:32:24

标签: python easygui

我的if / else语句和EasyGUI选项框似乎有些问题。我知道如果用户按“取消”,则返回“无”。我的代码总是输入“Else”语句。另外,我的第二个For循环似乎没有迭代。有没有更好的方法来选择我想要的对象(国家/地区名称)?到目前为止,这是我的代码,带有调试输出。

更新:问题在于我出于某种原因使用Mac。我使用了我的电脑,它按预期工作。

1 个答案:

答案 0 :(得分:0)

根据thischoicebox返回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]
    ...