这是我在Python中的第二个程序。我似乎对自己的进步感到满意。问题是我想做的是:
choice=eg.ynbox(msg='wat to do')
for["true","1"] in choice:
print("yes")
for["false","0"] in choice:
print("no")
问题是这种状况不起作用。我在查找上一个问题的答案时看到了这样的代码,但我忘记了。我尝试使用谷歌搜索,但我不知道如何用文字说明..一点点语法帮助是必要的 BTW:它是一个带有easygui 0.96的gui程序。
答案 0 :(得分:1)
choice = eg.ynbox(msg='wat to do')
if any(word in choice for word in ["true","1"]):
print('yes')
elif any(word in choice for word in ["false","0"]):
print('no')
else:
print('invalid input')
或者,如果清单很短:
choice = eg.ynbox(msg='wat to do')
if 'true' in choice or '1' in choice::
print('yes')
if 'false' in choice or '0' in choice::
print('no')
else:
print('invalid input')
答案 1 :(得分:0)
我假设您eg.ynbox(msg='wat to do')
表示您正在创建是/否对话框。这意味着choice
中存储的值为Integer
,其中 1 表示 True , 0 表示假即可。只要在Python 2.x中没有重新分配 True 和 False ,这在Python 2.x和Python 3.x 中都是正确的 True
和False
是Python 3.x中的保留关键字,因此保证不会更改。因此,您只需使用if
语句即可使用此值:
if choice:
print 'Yes'
else:
print 'No'
您不需要在1
和0
上匹配,因为它们代表True
和False
。
答案 2 :(得分:0)
您可以尝试使用以下代码代替您的代码:
def is_accept(word):
return word.lower() in {'true', '1', 'yes', 'accept'}
def is_cancel(word):
return word.lower() in {'false', '0', 'no', 'cancel'}
def get_choice(prompt=''):
while True:
choice = eg.ynbox(msg=prompt)
if is_accept(choice):
print('Yes')
return True
if is_cancel(choice):
print('No')
return False
print('I did not understand your choice.')