鱼C论坛

 找回密码
 立即注册
查看: 1217|回复: 1

[已解决]关于条件分支的问题

[复制链接]
发表于 2020-9-22 15:23:20 | 显示全部楼层 |阅读模式

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

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

x
新版Python学习的课后作业,第006讲:改进我们的小游戏(上),动动手第1题:
我的代码如下:
while True:
    score = input("请输入分数:")
    if score =="e":
        break
    else:
        result = int(score)
        if result < 60:
            print("D")
        if 60 <= result < 80:
            print("C")
        if 80 <= result < 90:
            print("B")
        if 90 <= result <100:
            print("A")
        else:
            print("S")
执行的时候,输入一个分数,总会把S打印出来:比如输入59,会打印D S,输入89会打印B S,没弄明白为什么已经执行了前面的if条件,为什么还要执行后面的else,新手求解答
最佳答案
2020-9-22 15:32:17
因为你用的是多个if,最后一个if判断之后分数不在90到100之间就会执行else,然后输出S
应该吧第二个以后的if都改为elif,这样程序只会进入一个分支
while True:
    score = input("请输入分数:")
    if score =="e":
        break
    else:
        result = int(score)
        if result < 60:
            print("D")
        elif 60 <= result < 80:
            print("C")
        elif 80 <= result < 90:
            print("B")
        elif 90 <= result <100:
            print("A")
        else:
            print("S")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-9-22 15:32:17 | 显示全部楼层    本楼为最佳答案   
因为你用的是多个if,最后一个if判断之后分数不在90到100之间就会执行else,然后输出S
应该吧第二个以后的if都改为elif,这样程序只会进入一个分支
while True:
    score = input("请输入分数:")
    if score =="e":
        break
    else:
        result = int(score)
        if result < 60:
            print("D")
        elif 60 <= result < 80:
            print("C")
        elif 80 <= result < 90:
            print("B")
        elif 90 <= result <100:
            print("A")
        else:
            print("S")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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