我的Python代码是
while True:
a = int(input("enter a digit"))
if a < 10:
print("digit is less than 10")
if a < 50 and a > 10:
print("digit is more than 10")
else:
print("error")
所以我的疑问是,当我为(a <10)运行该程序时,它将相对于if语句显示正确的输出,但也会提供else语句以及if的输出。但是,如果第二个短语中提到的if条件为(a <50并且a> 10),则输出仅是“数字大于10”,这是正确的,但是为什么值小于时,为什么会有else的额外输出10。
答案 0 :(得分:2)
如果您希望所有if
语句都属于同一if..else
块,那么您应该这样做:
while True:
a = int(input("enter a digit"))
if a < 10:
print("digit is less than 10")
elif a < 50 and a > 10:
print("digit is more than 10")
else:
print("error")
说明:
您当前的代码有两个不同的if..else
块:
a = int(input("enter a digit"))
if a < 10:
print("digit is less than 10")
if a < 50 and a > 10:
print("digit is more than 10")
else:
print("error")
因此,如果a<10
,它将打印"digit is less than 10"
。然后该if
块结束,您的代码进入第二个if
块。由于a
不在10
和50
之间,因此它将输入else
语句并打印"error"
。
答案 1 :(得分:0)
因为您有两个if
语句,所以需要一个elif
if a < 10:
print("digit is less than 10")
elif a < 50 and a > 10:
print("digit is more than 10")
else:
print("error")
输出:
enter a digit1
digit is less than 10
enter a digit50
error
enter a digit49
digit is more than 10
enter a digit
enter a digit90
error
答案 2 :(得分:0)
之所以会这样,是因为在顺序代码中运行类似
如果Statememt(a <10)
If else语句(a> 10和a <50)
对于a < 10
:
如果陈述
a<10
打印如果陈述
10 < a < 50
:(否),则else
打印执行
答案 3 :(得分:0)
在这些情况下,您需要更多的语句,则需要使用elif语句。 这是解决方案: 而True: a = int(input(“ enter a digit”)) 如果<10: 打印(“数字小于10”) 小数<50和> 10: 打印(“位数大于10”) 其他: 打印(“错误”)