是否有任何选项可以将变量与数字和字符串进行比较,该语句使用 or 操作器



>是否有任何选项可以使用运算符将变量与同一 if 语句中的数字和字符串进行比较or

我已经尝试过了,但它没有返回真正的值:

print("enter you choice either 1 for yesn 2 for no")
x=input("enter your choice")
if(x==1 or x=='yes'):
     x=5
elif(x==2 or x=='no'):
      x=6
print(x)

input返回一个字符串,因此您需要与字符串进行比较。

此外,您可以使用in(__contains__(来检查实现__contains__的给定集合中的值(可以是任何原始集合,例如 tuplelistset ,但是使用 set 会因为 O(1( 查找而高效,但创建集合的成本对于所有集合都是相同的(:

if x in {'1', 'yes'}:

显然,您可以使用 or -chain 来执行此操作,但这不会像使用集合那样可读和维护。

你可以试试这个:

print("enter you choice either 1 for yesn 2 for no")
x=input("enter your choice")
if(x in {1, '1', 'yes'}):
     x=5
elif(x in {2, '2', 'yes'}):
      x=6
print(x)

Python input总是在 python3 中返回一个字符串。如果您使用的是python2,则可能会返回整数。如果您只是检查1'1'(因为对于用户来说它们的意思相同(,它将适用于两个版本的python

input()函数返回一个字符串。因此,在您的情况下,尽管用户会输入 1 或 2,但 x 仍然是字符串"1"或"2"。所以你能做的是

if x in ['1', 'yes']:
   # do something
elif x in ['2', 'no']:
   # do something else
我已经

更新了您的代码,这就是结果,问题是您正在比较 str 和 int,要修复它,您只需要这样做。

if (x == "1") or (x == "yes")
#code
elif (x == "2") or (x == "no")

最新更新