Joshua_M 发表于 2026-8-10 10:54:31

求助 Pyhton第六课课后作业

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

"分数评级"

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

while score != "e":
   
    if score == 100:
      print("S")
    else:
      if 90 <= score < 100:
            print("A")
      else:
            if 80 <= score < 90:
                print("B")
            else:
                if 60 <= score < 80:
                  print("C")
                else:
                  print("D")
    score = input("请输入你的分数:")

不知道为什么这个代码只能跑一次,并且输入e就报错,求助

FishC 发表于 2026-8-10 10:54:43

鱼油你好!这道题主要练习条件判断,可以使用 if/elif/else 来实现。下面是一个常见的评级程序:


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

if score < 60:
    print("D")
elif score < 70:
    print("C")
elif score < 80:
    print("B")
elif score < 90:
    print("A")
else:
    print("S")


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

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

危险兔兔 发表于 2026-8-10 12:40:42

你这里e是字符串,不能和int()比,我之前遇到过这个问题。最后一行也很奇怪

柿子饼同学 发表于 2026-8-10 20:33:22

本帖最后由 柿子饼同学 于 2026-8-10 20:38 编辑

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

while score != "e":
    score = int(score);
    if score == 100:
      print("S")
    else:
      if 90 <= score < 100:
            print("A")
      else:
            if 80 <= score < 90:
                print("B")
            else:
                if 60 <= score < 80:
                  print("C")
                else:
                  print("D")
    score = input("请输入你的分数:")
看到第四行, 我加了一个 score = int(score), 原因是input()的返回值是 str 类型, 无法进行比较,
在第一次输入时你使用 int(input()) 不会报错, 但是后面都没有, 所以会报错
现在如果你最后一次输入的是e, 那么会先过 while score != "e" 这关, 也就是会结束循环, 如果不是 e, 说明大概是数字, 就把这个代表数字的字符串变成数字(第四行)
地位相当的多选择建议使用 if - elif - elif - else 的方式, 会比嵌套 if 更好读

Joshua_M 发表于 2026-8-11 21:38:22

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

0基础学的这个 还没学到 elif - elif 哈 谢谢!

柿子饼同学 发表于 2026-8-12 10:59:51

本帖最后由 柿子饼同学 于 2026-8-12 18:00 编辑

Joshua_M 发表于 2026-8-11 21:38
0基础学的这个 还没学到 elif - elif 哈 谢谢!

还有什么问题吗, 欢迎追问, 如果没有可以点最佳答案然后这个问题就结束了

liyh67 发表于 4 天前

# cj=0
while True:
    cj=input('请输入成绩(100以内的数字,输入字母“e”结束)?')
    if cj=='e':
      break

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

    if cj<0:
      print('成绩不能输入负数')
    elif cj<60:
      print('D')
    elif cj<80:
      print('C')
    elif cj < 90:
      print('B')
    elif cj<100:
      print('A')
    elif cj==100:
      print('S')
    else:
      print('成绩不能超过100')
页: [1]
查看完整版本: 求助 Pyhton第六课课后作业