簡體   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