006课课后疑点
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") 同学你好!你贴的代码不完整哦,最后一行 if 60 后面没有条件判断和冒号,所以程序会报语法错误。
关于这个题目,我猜你是想写一个分数等级转换程序:
- 当输入 'e' 时退出;
- 正常输入数字分数后,根据分数输出等级(比如 60 以下为 D,60-69 为 C,70-79 为 B,80-100 为 A)。
下面我帮你写一个完整、正确的版本,并解释关键点:
score = input("请输入你的分数:")
while score != 'e':
score = int(score)
if score < 60:
print("D")
elif score < 70:
print("C")
elif score < 80:
print("B")
else:
print("A")
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 小助理,如未能正确解答您的问题,请继续追问。 你的代码第二个 if 应该改成 elif,否则 100 分的时候 S 和 A 都会打印出来(因为两个 if 是独立判断的)。改成 elif 之后,一旦匹配上就退出判断链,逻辑就对了。while 循环的停止靠的是 score != e 这个条件——输入 e 时循环条件不成立,就退出了。 小派 发表于 2026-5-15 12:14
你的代码第二个 if 应该改成 elif,否则 100 分的时候 S 和 A 都会打印出来(因为两个 if 是独立判断的)。 ...
第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗 如果你想要使循环停止的话可以用break函数 xcchuanqi 发表于 2026-5-15 14:58
第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗
不对吧,当temp == 100时,if条件会成立,else语句不会执行,从而只打印"S"啊{:10_277:} xcchuanqi 发表于 2026-5-15 14:58
第二段是我的代码,我这边用idle是正常能跑的,不会同时跳出S和A,老师能细说下吗
你的代码是完全可以执行的 我第一次写和你写的差不多,但你这个没用while循环,只能运行一次吧 一眼看去,两眼一黑,第一个反应就是这东西跑不起来,可越看越觉得好像能行,
复制了你的代码,放在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("请输入纯数字!")
另外,我也是个小白,在网上看了半个做左右的视频,瞎搞的,也希望有大神能指点一下 网络草包 发表于 2026-5-24 10:56
一眼看去,两眼一黑,第一个反应就是这东西跑不起来,可越看越觉得好像能行,
复制了你的代码,放在pychar ...
对了,我把guess = int(temp)这里改成了guess = float(temp),成绩嘛,总是会有小数点的 网络草包 发表于 2026-5-24 10:56
一眼看去,两眼一黑,第一个反应就是这东西跑不起来,可越看越觉得好像能行,
复制了你的代码,放在pychar ...
嗯,可能第一眼看上去一直在用if语句好像不行,但是因为我才学了这个,也不懂其他的,就只能用这个,用这个语句是能够打印出成绩对应的评分就像是多层沙漏一样,一步一步排除,直到出现对应的条件才出对应的结果 xcchuanqi 发表于 2026-5-24 22:11
嗯,可能第一眼看上去一直在用if语句好像不行,但是因为我才学了这个,也不懂其他的,就只能用这个,用这 ...
一样的,我也是小白,天天在网上混免费课,视频看了有半个月了吧
页:
[1]