Join = input('Would you like to join me?')
if Join == 'yes' or 'Yes':
print("Great," + myName + '!')
else:
print ("Sorry for asking...")
所以这是我的代码。它更长;只是包括问题。我问一个是或否的问题,在控制台中它运行顺利,直到你到达它。无论你输入什么,你都会得到'是'的输出。有人可以帮忙吗?我也使用过elif语句,但没有运气。
答案 0 :(得分:11)
if Join == 'yes' or 'Yes':
这总是如此。 Python将其读作:
if (Join == 'yes') or 'Yes':
作为非空字符串的or
的后半部分始终为true,因此整个表达式始终为true,因为任何or
true都为真。
您可以通过明确地将Join
与两个值进行比较来解决此问题:
if Join == 'yes' or Join == 'Yes':
但在这种特殊情况下,我建议最好的方法就是这样:
if Join.lower() == 'yes':
这样,用户输入的内容无关紧要,将其转换为小写并针对小写值进行测试。如果您打算在其他地方使用变量Join
,那么在输入时可以方便地将其缩小:
Join = input('Would you like to join me?').lower()
if Join == 'yes': # etc.
您也可以编写它,以便用户可以输入以y
开头的内容,或者只是y
:
Join = input('Would you like to join me?').lower()
if Join.startswith('y'): # etc.
答案 1 :(得分:1)
我昨天回答this question
您可以使用.lower()
Join = input('Would you like to join me?')
if Join.lower() == 'yes':
print("Great," + myName + '!')
else:
print ("Sorry for asking...")
答案 2 :(得分:0)
这不是or
运算符的工作方式。替换:
if Join == 'yes' or 'Yes':
使用:
if Join in ['yes', 'Yes']:
它会做你想做的事。
编辑:或者试试这个,更广泛的目的:
if 'yes'.startswith(Join.lower()):
应该匹配',' Y',' ye',' Ye',' YE&#39 ;等等。
答案 3 :(得分:0)
if语句实际应该是:
if Join=='yes' or Join =='Yes'
在代码中写入 if 语句的方式将导致代码以这种方式进行评估:
(if Join == 'yes') or ('Yes'):
请注意('是')是真实的,并且总是评估为真