所以我的老师让我发现这个程序有什么问题,但我无法修复它。程序中的问题是无论输入是什么,它总是打印yes输出。 所以请帮助。请明确。
这是源代码:
a = raw_input('>')
if 'y' or 'Y' in a: print 'you entered yes'
elif 'n' or 'N' in a: print 'you entered No'
else: print 'Try again !'
答案 0 :(得分:1)
我认为你的意思是(更容易检查是否在一系列有效值中):
if a in ('y', 'Y'):
print 'you entered yes'
elif a in ('n', 'N'):
print 'you entered No'
目前你误解了布尔运算。目前它被评估为例如:
if ('y') or ('y' in a):
这显然不是你想要的。它总会出现,因为只要一个字符串不为空,它就是True
,这就是由于短路评估而返回的内容。