每天都要快乐 发表于 2025-8-19 21:18:06

第006讲:改进我们的小游戏(上)| 课后测试题,求答疑

第006讲:改进我们的小游戏(上)| 课后测试题,动动手的这一题不太会。
【题目要求:】
1. 修改上一题的代码,让程序可以不断接收输入,直至用户输入小写字母 e 结束程序。
【我的代码:】
"""分数评级"""

分数=input("请输入你的分数:\n")
while 分数!='e':
    分数=int(分数)

    if 分数<60:
      print("D")

    if 60<=分数<80:
      print("C")

    if 80<=分数<90:
      print("B")

    if 90<=分数<100:
      print('A')

    if 分数==100:
      print('S')
【我的疑问:】
为什么我输入分数后,会不停打印对应的等级呢?

FishC 发表于 2025-8-19 21:19:08

您好!我来帮您解答第006讲的课后测试题。

您的问题是需要修改代码,让程序可以不断接收输入,直到用户输入小写字母 'e' 结束程序。您的代码片段不完整,但核心思路是正确的。我们需要添加一个循环和异常处理来完善它。

以下是修正后的完整代码:


"""分数评级程序,输入e退出"""

while True:
    输入内容 = input("请输入你的分数(输入e退出):\n")
    if 输入内容 == 'e':
      print("程序结束")
      break
    try:
      分数 = int(输入内容)
      if 分数 >= 90:
            print("评级: A")
      elif 分数 >= 80:
            print("评级: B")
      elif 分数 >= 70:
            print("评级: C")
      elif 分数 >= 60:
            print("评级: D")
      else:
            print("评级: F")
    except ValueError:
      print("错误:请输入有效的数字或输入e退出")


### 解释:
- 使用 while True 创建一个无限循环,直到遇到 break。
- 每次循环中,提示用户输入。
- 如果输入是 'e',打印消息并退出循环。
- 否则,尝试将输入转换为整数,并进行分数评级。
- 添加了 try-except 来处理非数字输入,避免程序崩溃。

这个代码会一直运行,直到用户输入 'e'。希望这能帮到您!如果还有其他问题,请随时问。

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

jackz007 发表于 2025-8-19 23:08:04

本帖最后由 jackz007 于 2025-8-19 23:18 编辑

"""分数评级"""

分数 = input("请输入你的分数: ")
while 分数 !='e':
    分数=int(分数)
    if 分数<60:
      print("D")

    if 60<=分数<80:
      print("C")

    if 80<=分数<90:
      print("B")

    if 90<=分数<100:
      print('A')

    if 分数==100:
      print('S')

    分数 = input("请输入你的分数 : ")   # 添加此句,因为每次循环都必须输入新的分数以供判定   

      分数是 while 的循环变量,如果在循环过程中,循环变量(分数)始终保持不变,那么,循环条件就会恒定,一旦进入,就一定会陷入死循环。这就是楼主看到不停打印同一个评分结果的根本原因。
页: [1]
查看完整版本: 第006讲:改进我们的小游戏(上)| 课后测试题,求答疑