代码问题
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("请输入你的分数:")
这是第六讲作业题,答案如上,为什么要多出最后一行代码? 以下是修正后的代码及解析:
score = input("请输入你的分数:")
while score != 'e':
try:
score_num = int(score)# 转换为整数
except ValueError:
print("输入错误!请输入数字或'e'退出")
score = input("请输入你的分数:")
continue# 跳过后续代码,重新输入
if score_num < 0 or score_num > 100:
print("分数必须在0-100之间")
elif score_num < 60:
print("D")
elif score_num < 70: # 60-69分
print("C")
elif score_num < 80: # 70-79分
print("B")
else: # 80-100分
print("A")
score = input("请输入你的分数:")# 循环末尾重新获取输入
主要修复的问题:
[*]1. int(score) 未处理非数字输入 → 添加了 try-except 捕获异常
[*]2. 缺少退出机制 → 输入 e 可退出循环
[*]3. 条件判断不完整 → 补全分数分级逻辑:
[*]0-59: D
[*]60-69: C
[*]70-79: B
[*]80-100: A
[*]4. 死循环问题 → 在循环末尾重新获取 score 输入
[*]5. 添加分数范围校验 → 确保分数在0-100之间
使用示例:
请输入你的分数:85
A
请输入你的分数:62
C
请输入你的分数:e
(程序退出)
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 因为第一次输入在循环外,之后若不重新输入,循环每次判断的都是第一次输入的内容了。这段代码是在每次判断完之后再次从用户这里要分数。 原来代码确实可以精简:
score = ''
while score != 'e':
score = int(input("请输入你的分数:"))
if score < 60:
print("D")
elif score < 80:
print("C")
elif score < 90:
print("B")
elif score < 100:
print("A")
elif score == 100:
print("S") player-none 发表于 2025-6-1 18:38
因为第一次输入在循环外,之后若不重新输入,循环每次判断的都是第一次输入的内容了。这段代码是在每次判断 ...
懂了懂了,谢谢你啊 循环问题,老师用得好
页:
[1]