繁体   English   中英

有人可以帮我这个代码吗?

[英]Could somebody please help me with this code?

有人可以帮我吗? 我已经编写了此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') is True (不为空的字符串被视为True)。 因此,您将拥有False or 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')

如果要比较的值增加,则可以执行以下操作

if naam in ('Tim', 'tim'):
    print ('Hoi Tim')
elif naam in ('Mitch', 'mitch'):
    print ('Hoi Mitch')
elif naam in ('Tom', 'tom'):
    print ('Hoi Tom')
else:
    print ('Hoi vreemdeling!')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM