Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.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 为什么忽略第一个if条件语句而执行最后一个else?_Python - Fatal编程技术网

Python 为什么忽略第一个if条件语句而执行最后一个else?

Python 为什么忽略第一个if条件语句而执行最后一个else?,python,Python,当我输入John和0时,“johnisgreat”语句不会执行。我不明白为什么。 我知道这个问题可能很简单,但我检查了Java代码,它工作正常 print("Hello world") myName = input("What is your name?\n") myVar = input("Enter a number: ") if(myName == "John" and myVar == 0): print("John is great") elif(myName == "Bo

当我输入John和0时,“johnisgreat”语句不会执行。我不明白为什么。
我知道这个问题可能很简单,但我检查了Java代码,它工作正常

print("Hello world")
myName = input("What is your name?\n")
myVar = input("Enter a number: ") 

if(myName == "John" and myVar == 0):
    print("John is great")
elif(myName == "Bob"):
    print("You are ok")
else:
    print("Hello world")
0
“0”
是两个不同的值
0==0
为真<代码>0==“0”为false

input
总是返回一个
str
,因此输入
0
myVar
设置为
“0”
,而不是
0

if myName == "John" and myVar == "0":

myVar
str
类型
int
类型。

您应该修复
myVar=int(输入(“输入一个数字”)

这两个变量都是
str
值;您正在将其中一个与
int
进行比较,因此该值始终为false。那么python中的所有输入都是字符串?是的。所有输入都是字符串。如果您想将输入读取为整数,则必须执行转换:
myvar=int(输入(“输入一个数字”)
@JuliaK谢谢,它成功了;)