这个python程序有什么问题!我只是想不通

时间:2014-04-15 15:07:26

标签: python

所以我的老师让我发现这个程序有什么问题,但我无法修复它。程序中的问题是无论输入是什么,它总是打印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 !'

1 个答案:

答案 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,这就是由于短路评估而返回的内容。