我目前正在学习来自C ++的Python 2.7。
我正在处理菜单样式输入,但是由于某种原因,在接受用户输入后,它将打印“开始”,然后退出程序。我不确定自己在做什么错。这是我的代码。
string=raw_input('Start Program?(Y/N) ')
print string
if string == 'Y' or 'y' or 'Yes' or 'yes':
print 'Starting'
if start == 'N' or 'n' or 'No' or 'no' or 0:
print'Closing program'
exit()
else:
print 'Invalid Respons'
#program should loop back and ask for input again...
答案 0 :(得分:1)
如果字符串=='Y'或'y'或'Yes'或'yes'
布尔逻辑的工作方式不像英语那样。 string == 'Y' or 'y' or 'Yes' or 'yes'
始终等于True
:
string == 'Y' or 'y' or 'Yes' or 'yes'
= (((string == 'Y') or 'y') or 'Yes') or 'yes'
= ((??? or 'y') or 'Yes') or 'yes'
= (True or 'Yes') or 'yes'
= True or 'yes'
= True
。
我想您需要这样的代码:
if string == 'Y' or string == 'y' or string == 'Yes' or string == 'yes':
或者简单起见:
if string in ('Y', 'y', 'Yes', 'yes'):