有人可以帮帮我吗?我已经编写了这段 python 代码,但出于某种原因,它无法正确响应我的 if 和 elif 语句。
print ('Welkom')
print("\n")
naam = input('Typ alsjeblieft je naam en druk vervolgens op enter: ')
print("\n")
if naam == 'Tim' or 'tim':
print ('Hoi Tim')
elif naam == 'Mitch' or 'mitch':
print ('Hoi Mitch')
elif naam == 'Tom' or 'tom':
print ('Hoi Tom')
else:
print ('Hoi vreemdeling!')
无论我输入什么(比如 mitch),它总是会打印“Hoi Tim”。我用数字和表达式尝试了相同的代码,例如 input == 20。在那些情况下,它确实响应了我的 if 语句。有人可以向我解释我做错了什么吗?
请您参考如下方法:
if naam == 'Tim' or 'tim' 解释为:
if (naam == 'Tim') or ('tim')
这将始终为 True,因为 bool('tim') 为 True(非空字符串被视为 True)。因此,您有类似 False 或 True 的内容,它将返回 True(因为其中一个值为 True)。
如果你想将输入与两个字符串进行比较,你必须这样做:
if naam == 'Tim' or naam == 'tim':
或者:
if name in ('Tim', 'tim'):
但是,对于您的示例,您可以使用 str.lower() :
if naam.lower() == 'tim':
这对你的其他人来说是一样的:
elif naam.lower() == 'mitch':
print('Hoi Mitch')
elif naam.lower() == 'tom':
print('Hoi Tom')
