Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/45.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 谁能帮我查一下这个密码吗?_Python - Fatal编程技术网

Python 谁能帮我查一下这个密码吗?

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

谁能帮帮我吗?我已经编写了这段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声明。有人能解释一下我做错了什么吗?

如果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。