这是我的第一篇文章。我是30岁时对编程语言的一个非常新的学习者。我正在学习的语言是python,我似乎不明白我的简单编程代码的基本缺陷是什么。
a = input("What is the string?")
b = input("Enter a number:")
if(a == "Animal" and b == 1):
print("No 1 Executed!")
elif(a == "Dog"):
print("No 2 Executed")
else:
print("No 3 Executed")
即使我打字" Animal"和1号,第3行被执行而不是行号。你能解释一下我的基本错误吗?谢谢!
答案 0 :(得分:1)
b是一个字符串,如果将其与数字进行比较,则结果为false。你应该使用:
if(a == "Animal" and b == "1"):
您还可以使用int(b)
将b转换为数字答案 1 :(得分:0)
问题是输入函数返回一个String。这意味着变量b将是一个字符串,在你的if语句中,你要检查它是否等于一个数字。您可以通过多种方式解决此问题,例如将if语句更改为:
if(a == "Animal" and b == "1"):
答案 2 :(得分:0)
输入命令将始终创建一个字符串,因此即使您输入1,python也会将该值解释为字符串。 b == 1
期望b为数字,因此表达式始终为false。有两种方法可以解决它。
如果您想将b保留为字符串,只需将该表达式更改为与字符串进行比较,即b == "1"
如果您想将b作为数字,请在b = input("Enter a number:")
之后立即将其转换为整数,只需添加一个新行:b = int(b)
。现在您的表达式将按预期工作,但如果您输入的任何值都不是数字,程序将失败。
答案 3 :(得分:0)
执行最新行的原因是input
返回str
对象,该对象不等于数字。为了使其具有可比性,您需要将b
转换为int
。
b = int(input("Enter a number:"))