是或否输出Python

Ros*_*son 2 python variables

Join = input('Would you like to join me?')
if Join == 'yes' or 'Yes':
  print("Great," + myName + '!')
else:
  print ("Sorry for asking...")
Run Code Online (Sandbox Code Playgroud)

所以这是我的代码.它更长; 只是包括问题.我问一个是或否的问题,在控制台中它运行顺利直到你到达它.无论你输入什么,你都会得到'是'的输出.有人可以帮忙吗?我也使用过elif语句,但没有运气.

kin*_*all 11

if Join == 'yes' or 'Yes':
Run Code Online (Sandbox Code Playgroud)

这总是如此.Python将其读作:

if (Join == 'yes') or 'Yes':
Run Code Online (Sandbox Code Playgroud)

or作为非空字符串的后半部分总是正确的,所以整个表达式总是正确的,因为任何or真实都是真的.

您可以通过显式比较Join两个值来解决此问题:

if Join == 'yes' or Join == 'Yes':
Run Code Online (Sandbox Code Playgroud)

但在这种特殊情况下,我建议最好的方法是写这个:

if Join.lower() == 'yes':
Run Code Online (Sandbox Code Playgroud)

这样,用户输入的内容无关紧要,将其转换为小写并针对小写值进行测试.如果您打算在Join其他地方使用该变量,则在输入时可以方便地将其小写:

Join = input('Would you like to join me?').lower()
if Join == 'yes':   # etc.
Run Code Online (Sandbox Code Playgroud)

您也可以编写它,以便用户可以输入任何以y或者实际开头的内容y:

Join = input('Would you like to join me?').lower()
if Join.startswith('y'):   # etc.
Run Code Online (Sandbox Code Playgroud)