是或否输出Python

时间:2013-07-30 17:50:34

标签: python variables

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

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

4 个答案:

答案 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'):

请注意('是')是真实的,并且总是评估为真