课后作业6:为什么使用多个if语句后,最后使用else会出错
cj=input("请输入你的成绩:")while cj !='e':
cj=int(float(cj))
if cj == 100:
print('S')
if 90<=cj<100:
print('A')
if 80<=cj<90:
print('B')
if 60<=cj<80:
print('C')
else:
print('D')
cj=input("请输入你的成绩:")
最后结果
请输入你的成绩:90.1
A
D
请输入你的成绩:
虽然输入了90分以上,但是还是会显示一个D成绩,这是为什么 在这段代码中,如果输入的成绩不在[60,80)范围内,会输出一个'D'成绩。
然而,在这种情况下,如果该成绩在范围内,它也会输出一个'D'成绩。
这是因为if语句是相互独立的,每个if语句都会执行,即使成绩已经匹配了一个更高的级别。
因此,在输出一个'A'成绩之后,因为成绩不在[60,80)范围内,它会输出一个'D'成绩。
为了避免这个问题,你可以把后面的if语句改为elif语句,
这样它只会在前面的if语句都不匹配时执行,而不是每次都执行。例如:
cj=input("请输入你的成绩:")
while cj !='e':
cj=int(float(cj))
if cj == 100:
print('S')
elif 90<=cj<100:
print('A')
elif 80<=cj<90:
print('B')
elif 60<=cj<80:
print('C')
else:
print('D')
cj=input("请输入你的成绩:")
这样,只有在成绩不在或等于100的范围内时,才会输出一个'D'成绩。 isdkz 发表于 2023-3-11 09:27
在这段代码中,如果输入的成绩不在[60,80)范围内,会输出一个'D'成绩。
然而,在这种情况下,如果该成绩 ...
谢谢大佬
页:
[1]