有人能帮我处理这个代码吗?

2024-04-27 03:15:21 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能帮帮我吗?我已经编写了这个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!')

不管我输入什么(比如米奇),它都会打印“Hoi Tim”。我用同样的代码来处理数字和表达式,比如input==20。在这种情况下,它确实回应了我的if声明。有人能解释一下我做错了什么吗?你知道吗


Tags: or代码inputif原因语句printtim
2条回答

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

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!')

if naam == 'Tim' or 'tim'被解释为:

if (naam == 'Tim') or ('tim')

它总是True,因为bool('tim') is True(非空的字符串被认为是真的)。因此,您有一些类似于False or True,它将返回True(因为其中一个值是真的)。你知道吗

如果要将输入与两个字符串进行比较,必须执行以下操作:

if naam == 'Tim' or naam ==  'tim':

或:

if name in ('Tim', 'tim'):

但是,对于您的示例,可以使用^{}

if naam.lower() == 'tim':

其他人也是这样:

elif naam.lower() == 'mitch':
    print('Hoi Mitch')
elif naam.lower() == 'tom':
    print('Hoi Tom')

相关问题 更多 >