鱼C论坛

 找回密码
 立即注册
查看: 2248|回复: 2

[已解决]课后作业6:为什么使用多个if语句后,最后使用else会出错

[复制链接]
发表于 2023-3-11 09:22:11 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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成绩,这是为什么
最佳答案
2023-3-11 09:27:27
在这段代码中,如果输入的成绩不在[60,80)范围内,会输出一个'D'成绩。

然而,在这种情况下,如果该成绩在[80,90)或[90,100]范围内,它也会输出一个'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("请输入你的成绩:")
这样,只有在成绩不在[60,80)、[80,90)、[90,100]或等于100的范围内时,才会输出一个'D'成绩。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-3-11 09:27:27 | 显示全部楼层    本楼为最佳答案   
在这段代码中,如果输入的成绩不在[60,80)范围内,会输出一个'D'成绩。

然而,在这种情况下,如果该成绩在[80,90)或[90,100]范围内,它也会输出一个'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("请输入你的成绩:")
这样,只有在成绩不在[60,80)、[80,90)、[90,100]或等于100的范围内时,才会输出一个'D'成绩。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-11 09:34:02 | 显示全部楼层
isdkz 发表于 2023-3-11 09:27
在这段代码中,如果输入的成绩不在[60,80)范围内,会输出一个'D'成绩。

然而,在这种情况下,如果该成绩 ...

谢谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 07:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表