Skip to main content
 首页 » 编程设计

python之有人可以帮我处理这段代码吗

2025年05月04日10wayfarer

有人可以帮帮我吗?我已经编写了这段 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')