Python 谁能帮我查一下这个密码吗?
谁能帮帮我吗?我已经编写了这段python代码,但由于某些原因,它没有正确响应if和elif语句Python 谁能帮我查一下这个密码吗?,python,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': pr
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声明。有人能解释一下我做错了什么吗?如果naam==“Tim”或“Tim”被解释为:
if (naam == 'Tim') or ('tim')
它将始终是True
,因为bool('tim')是True
(非空的字符串被视为True)。因此,您有类似于False或True
,它将返回True
(因为其中一个值为True)
如果要将输入与两个字符串进行比较,必须执行以下操作:
if naam == 'Tim' or naam == 'tim':
或:
但是,对于您的示例,您可以使用:
这与您的其他产品相同:
elif naam.lower() == 'mitch':
print('Hoi Mitch')
elif naam.lower() == 'tom':
print('Hoi Tom')
如果naam==“Tim”或“Tim”
被解释为:
if (naam == 'Tim') or ('tim')
它将始终是True
,因为bool('tim')是True
(非空的字符串被视为True)。因此,您有类似于False或True
,它将返回True
(因为其中一个值为True)
如果要将输入与两个字符串进行比较,必须执行以下操作:
if naam == 'Tim' or naam == '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!')
如果要比较的值增加,可以这样做
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!')
另外,我认为
input
包括字符串末尾的\n
。他们必须调用.rstrip()
input()
不包括换行符。感谢您的回复Haidro。你的解释很清楚。我确实有个问题。你会建议哪种方法?为什么?@user2756101 Oops,直到现在才看到这个评论。我更喜欢使用.lower
,因为它更简短,可读性更强。至于性能,如果name in('Tim','Tim')中有if可能是最快的开始,我认为input
包括字符串末尾的\n
。他们必须调用.rstrip()
input()
不包括换行符。感谢您的回复Haidro。你的解释很清楚。我确实有个问题。你会建议哪种方法?为什么?@user2756101 Oops,直到现在才看到这个评论。我更喜欢使用.lower
,因为它更简短,可读性更强。至于性能,那么在('Tim','Tim')
中使用if name可能是最快的。谢谢您的回复。你应该如何翻译?是不是有点像伊里夫·纳姆(包括在内)?在中使用时,我可以编写尽可能多的选项吗?在中使用in
时,可以在元组或python列表中列出所有选项。如果任何项匹配,它将返回true。感谢您的回复。你应该如何翻译?是不是有点像伊里夫·纳姆(包括在内)?在中使用时,我可以编写尽可能多的选项吗?在中使用in
时,可以在元组或python列表中列出所有选项。如果任何项匹配,它将返回true。