鱼C论坛

 找回密码
 立即注册
查看: 41|回复: 9

006课课后疑点

[复制链接]
发表于 2026-5-15 12:02:40 | 显示全部楼层 |阅读模式

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

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

x
score = input("请输入你的分数:")

while score != 'e':
    score = int(score)

    if score < 60:
        print("D")

    if 60 <= score < 80:
        print("C")

    if 80 <= score < 90:
        print("B")

    if 90 <= score < 100:
        print("A")

    if score == 100:
        print("S")

    score = input("请输入你的分数:")这段代码是如何实现停止的,原理是什么

下面是我的代码它存在什么问题呢:
temp = input("请输入你的分数: ")
guess = int(temp)

if guess == 100:
    print("S")
else:
    if 90 <= guess < 100:
        print("A")
    else:
        if 80 <= guess <90:
            print("B")
        else:
            if 60 <= guess < 80:
                print("C")               
            else:
                if guess < 60:
                    print("D")
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-5-15 12:02:58 | 显示全部楼层
同学你好!你贴的代码不完整哦,最后一行 if 60 后面没有条件判断和冒号,所以程序会报语法错误。

关于这个题目,我猜你是想写一个分数等级转换程序:  
- 当输入 'e' 时退出;  
- 正常输入数字分数后,根据分数输出等级(比如 60 以下为 D,60-69 为 C,70-79 为 B,80-100 为 A)。  

下面我帮你写一个完整、正确的版本,并解释关键点:


  1. score = input("请输入你的分数:")

  2. while score != 'e':
  3.     score = int(score)

  4.     if score < 60:
  5.         print("D")
  6.     elif score < 70:
  7.         print("C")
  8.     elif score < 80:
  9.         print("B")
  10.     else:
  11.         print("A")

  12.     score = input("请输入你的分数:")  # 别忘了重新输入
复制代码


解释:  
1. input() 获得的是一个字符串,比如 "85""e"。  
2. while score != 'e': 只有输入不是 'e' 时才进入循环,所以这时 score 肯定是一个数字字符串,可以安全地转换为整数。  
3. 进入循环后,用 if ... elif ... else 结构判断等级,这样只执行一个分支,比独立写多个 if 更高效、清晰。  
4. 循环末尾一定要重新用 input() 获取下一次输入,否则会无限循环(一直用同一个分数判断)。  

注意: 如果你希望等级包含 A、B、C、D,上面的代码假设满分 100 分,且只到 D。原题中 if 60 之后的部分没有给出,请按照实际需求补全。

如果还有疑问,欢迎继续追问!

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-5-15 12:14:17 | 显示全部楼层
你的代码第二个 if 应该改成 elif,否则 100 分的时候 S 和 A 都会打印出来(因为两个 if 是独立判断的)。改成 elif 之后,一旦匹配上就退出判断链,逻辑就对了。while 循环的停止靠的是 score != e 这个条件——输入 e 时循环条件不成立,就退出了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2026-5-15 14:58:51 | 显示全部楼层
小派 发表于 2026-5-15 12:14
你的代码第二个 if 应该改成 elif,否则 100 分的时候 S 和 A 都会打印出来(因为两个 if 是独立判断的)。 ...

第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-5-15 19:37:50 From FishC Mobile | 显示全部楼层
如果你想要使循环停止的话可以用break函数
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
xcchuanqi 发表于 2026-5-15 14:58
第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗

不对吧,当temp == 100时,if条件会成立,else语句不会执行,从而只打印"S"啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 天前 | 显示全部楼层
xcchuanqi 发表于 2026-5-15 14:58
第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗

你的代码是完全可以执行的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 4 天前 | 显示全部楼层
我第一次写和你写的差不多,但你这个没用while循环,只能运行一次吧
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 7 小时前 | 显示全部楼层
一眼看去,两眼一黑,第一个反应就是这东西跑不起来,可越看越觉得好像能行,
复制了你的代码,放在pycharm上试了一下,完全没问题,
想了好久,明白了你的意思,
最后就在你的代码基础上做了一些小的调整,
以下是我调整后的代码,自己跑了一下,感觉应该是没什么问题的。
while True:
    try:
        temp = input("请输入你的分数或输入'Q'结束查询: ")
        if temp.upper() == 'Q':
            print("结束查询!")
            break
        else:
            guess = float(temp)

            if guess == 100:
                print("S")
            elif 90 <= guess < 100:
                print("A")
            elif 80 <= guess <90:
                print("B")
            elif 60 <= guess < 80:
                print("C")
            elif guess < 60:
                print("D")
            else:
                print("请输入100以内的数字!")
    except ValueError:
        print("请输入纯数字!")

另外,我也是个小白,在网上看了半个做左右的视频,瞎搞的,也希望有大神能指点一下
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 6 小时前 | 显示全部楼层
网络草包 发表于 2026-5-24 10:56
一眼看去,两眼一黑,第一个反应就是这东西跑不起来,可越看越觉得好像能行,
复制了你的代码,放在pychar ...

对了,我把guess = int(temp)这里改成了guess = float(temp),成绩嘛,总是会有小数点的
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-5-24 18:00

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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