鱼C论坛

 找回密码
 立即注册
查看: 104|回复: 6

[已解决]求助 Pyhton第六课课后作业

[复制链接]
发表于 2026-8-10 10:54:31 | 显示全部楼层 |阅读模式

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

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

x
题目内容:
0. 编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级。
分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S
让程序可以不断接收输入,直至用户输入小写字母 e 结束程序。
这是我写的代码

  1. "分数评级"

  2. score = int(input("输入分数:"))

  3. while score != "e":
  4.    
  5.     if score == 100:
  6.         print("S")
  7.     else:
  8.         if 90 <= score < 100:
  9.             print("A")
  10.         else:
  11.             if 80 <= score < 90:
  12.                 print("B")
  13.             else:
  14.                 if 60 <= score < 80:
  15.                     print("C")
  16.                 else:
  17.                     print("D")
  18.     score = input("请输入你的分数:")
复制代码


不知道为什么这个代码只能跑一次,并且输入e就报错,求助
最佳答案
2026-8-10 20:33:22
本帖最后由 柿子饼同学 于 2026-8-10 20:38 编辑
  1. score = int(input("输入分数:"))

  2. while score != "e":
  3.     score = int(score);
  4.     if score == 100:
  5.         print("S")
  6.     else:
  7.         if 90 <= score < 100:
  8.             print("A")
  9.         else:
  10.             if 80 <= score < 90:
  11.                 print("B")
  12.             else:
  13.                 if 60 <= score < 80:
  14.                     print("C")
  15.                 else:
  16.                     print("D")
  17.     score = input("请输入你的分数:")
复制代码

看到第四行, 我加了一个 score = int(score), 原因是input()的返回值是 str 类型, 无法进行比较,
在第一次输入时你使用 int(input()) 不会报错, 但是后面都没有, 所以会报错
现在如果你最后一次输入的是e, 那么会先过 while score != "e" 这关, 也就是会结束循环, 如果不是 e, 说明大概是数字, 就把这个代表数字的字符串变成数字(第四行)
地位相当的多选择建议使用 if - elif - elif - else 的方式, 会比嵌套 if 更好读
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2026-8-10 10:54:43 | 显示全部楼层
鱼油你好!这道题主要练习条件判断,可以使用 if/elif/else 来实现。下面是一个常见的评级程序:


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

  2. if score < 60:
  3.     print("D")
  4. elif score < 70:
  5.     print("C")
  6. elif score < 80:
  7.     print("B")
  8. elif score < 90:
  9.     print("A")
  10. else:
  11.     print("S")
复制代码

这段代码会根据分数输出对应的评级。如果你的评级标准不一样,只需要修改 elif 里的分数范围即可。运行试试吧!


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

使用道具 举报

发表于 2026-8-10 12:40:42 | 显示全部楼层
你这里e是字符串,不能和int()比,我之前遇到过这个问题。最后一行也很奇怪
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-8-10 20:33:22 | 显示全部楼层    本楼为最佳答案   
本帖最后由 柿子饼同学 于 2026-8-10 20:38 编辑
  1. score = int(input("输入分数:"))

  2. while score != "e":
  3.     score = int(score);
  4.     if score == 100:
  5.         print("S")
  6.     else:
  7.         if 90 <= score < 100:
  8.             print("A")
  9.         else:
  10.             if 80 <= score < 90:
  11.                 print("B")
  12.             else:
  13.                 if 60 <= score < 80:
  14.                     print("C")
  15.                 else:
  16.                     print("D")
  17.     score = input("请输入你的分数:")
复制代码

看到第四行, 我加了一个 score = int(score), 原因是input()的返回值是 str 类型, 无法进行比较,
在第一次输入时你使用 int(input()) 不会报错, 但是后面都没有, 所以会报错
现在如果你最后一次输入的是e, 那么会先过 while score != "e" 这关, 也就是会结束循环, 如果不是 e, 说明大概是数字, 就把这个代表数字的字符串变成数字(第四行)
地位相当的多选择建议使用 if - elif - elif - else 的方式, 会比嵌套 if 更好读
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2026-8-11 21:38:22 | 显示全部楼层
柿子饼同学 发表于 2026-8-10 20:33
看到第四行, 我加了一个 score = int(score), 原因是input()的返回值是 str 类型, 无法进行比较,
在第 ...

0基础学的这个 还没学到 elif - elif 哈 谢谢!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2026-8-12 10:59:51 | 显示全部楼层
本帖最后由 柿子饼同学 于 2026-8-12 18:00 编辑
Joshua_M 发表于 2026-8-11 21:38
0基础学的这个 还没学到 elif - elif 哈 谢谢!


还有什么问题吗, 欢迎追问, 如果没有可以点最佳答案然后这个问题就结束了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
  1. # cj=0
  2. while True:
  3.     cj=input('请输入成绩(100以内的数字,输入字母“e”结束)?')
  4.     if cj=='e':
  5.         break

  6.     try:
  7.         # 尝试将输入转换为浮点数(如果想限制整数,改为 int())
  8.         cj = float(cj)
  9.         # return cj  # 只有转换成功才会退出循环
  10.     except ValueError:
  11.         print('&#10060; 错误:请输入有效的数字,不能输入文本!(输入字母“e”结束)')
  12.         continue

  13.     if cj<0:
  14.         print('成绩不能输入负数')
  15.     elif cj<60:
  16.         print('D')
  17.     elif cj<80:
  18.         print('C')
  19.     elif cj < 90:
  20.         print('B')
  21.     elif cj<100:
  22.         print('A')
  23.     elif cj==100:
  24.         print('S')
  25.     else:
  26.         print('成绩不能超过100')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-8-20 22:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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