当我运行以下代码时:
i = None
O = ['n', 'y', 'No', 'Yes']
while i not in O:
i = input('Yes or No?\n')
if i == 'y' or 'Yes':
print('Yes')
if i == 'n' or 'No':
print('No')
输出是ñ是否
自第一个if语句为假以来,代码应该仅将No显示为输出吗?还是我听不懂?
谢谢
这是问题,您不能做:
if i == 'y' or 'Yes':
正在测试i == 'y'
还是仅是yes
。由于非空字符串始终返回true,因此第一个if语句将始终运行。然后,第二个if语句也是如此。因此,请尝试更改:if i == 'y' or 'Yes':
和if i == 'n' or 'No':
至if i == 'y' or i == 'Yes':
和if i == 'n' or i == 'No':
像这样:
i = None
O = ['n', 'y', 'No', 'Yes']
while i not in O:
i = input('Yes or No?\n')
if i == 'y' or i == 'Yes':
print('Yes')
if i == 'n' or i == 'No':
print('No')
这里是一个例子:click
您需要在第二张支票中明确声明i ==
; if i =='y' or i == 'Yes'
您所做的是
i == 'n' or 'No'
'No'
[i
等于n
或No
] No,因为它不等于n
i == 'n' or i == 'No'
False
您的代码中有这个:
if i == 'y' or 'Yes':
在Python(和大多数编程语言)中,此含义是:
if (i == 'y') or ('Yes'):
显然不是您想要的。由于'Yes'
的计算结果为true,而任何OR true均为true,则您的if
的主体将执行。
要得到想要的东西,你应该写:
if i == 'y' or i == 'Yes':
与“否”分支相同。