[英]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.