求教
输入100以上的数字,为什么没有执行 "重新输入0~100",而是执行了 "输入一个分数"a = 100
while a:
a = int(input("输入一个分数:"))
if 100 >= a and a >= 90:
print("A")
break
elif 90 > a and a >= 80:
print("B")
break
elif 80 > a and a >= 60:
print("C")
break
elif 60>a:
print("D")
break
elif a < 0 and a > 100:
a = int(input("重新输入0~100:"))
print(a) 本帖最后由 疾风怪盗 于 2020-9-9 23:22 编辑
elif a < 0 and a > 100:
这个条件,太难了,又要大于100,又要小于0,没法满足,所以就没有"重新输入0~100:"
其实可以完全不写这个条件
a = 100
while a:
a = int(input("输入一个分数:"))
if 90 <= a <= 100:
print("A")
break
elif 80 <= a < 90:
print("B")
break
elif 60 <= a < 80:
print("C")
break
elif 0 <= a < 60:
print("D")
break
else:
a = int(input("重新输入0~100:"))
print(a) elif a < 0 and a > 100:
{:10_277:}这一句的意思是a要小于0并且要大于100,你不觉得有问题么??,改成a小于0或者a大于100就行 elif a < 0 and a > 100: #这个地方不对,两者是并且的关系,没有数字可以又小于0并且又大于100,所以这个条件是不成立的自然不能执行后面的重新输入和打印。
a = int(input("重新输入0~100:"))
print(a)
#!/usr/bin/env python3
#coding=utf-8
# 输入100以上的数字,为什么没有执行 "重新输入0~100",而是执行了 "输入一个分数"
a = 100
while a:
a = int(input("输入一个分数:"))
if 100 >= a and a >= 90:
print("A")
break
elif 90 > a and a >= 80:
print("B")
break
elif 80 > a and a >= 60:
print("C")
break
elif 60>a:
print("D")
break
# and 短路求值了 101<0 不成立所以跳过了代码段
# or 则不会短路求值
elif a < 0 or a > 100:
a = int(input("重新输入0~100:"))
print(a)
页:
[1]