Edward888 发表于 5 天前

和标准答案不一样,这样写算对吗?

题目: 编写一个成绩评级程序,要求用户输入分数,程序返回对应的评级。
让程序可以不断接收输入,直至用户输入小写字母 e 结束程序。

分数 < 60,D
60 <= 分数 < 80,C
80 <= 分数 < 90,B
90 <= 分数 < 100,A
分数 == 100,S

我的:
while 2>1:
    guess = input("你的成绩是多少:")
    if guess == "e":
      print('游戏结束!')
      break
    test = int(guess)
    if test < 60:
      print('D')
    if 60 <= test <80:
      print('C')
    if 80 <= test <90:
      print('B')
    if 90 <= test <100:
      print('a')
    if test ==100:
      print('s')

甲鱼老师的答案:
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("请输入你的分数:")

FishC 发表于 5 天前

鱼油,你好!

只要你的程序能够根据输入的分数正确输出对应的评级,并且符合题目要求,那么即使写法与标准答案不同,也是正确的。编程中实现同一功能的方法有很多种,关键在于逻辑正确和结果准确。

下面是一个简单的示例代码,使用常见的 if-elif-else 结构:


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

if score < 60:
    grade = "D"
elif score < 70:
    grade = "C"
elif score < 80:
    grade = "B"
elif score < 90:
    grade = "A"
elif score <= 100:
    grade = "S"
else:
    grade = "输入错误"

print("评级为:", grade)


你也可以尝试其他方法,例如使用字典映射或 Python 3.10 的 match-case 语句。只要程序能正确处理边界情况(如分数超出 0-100 范围),并返回正确的评级,就算正确。

如果你有具体的代码写法,欢迎分享出来,我可以帮你分析是否满足题目要求。

加油!

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

空python 发表于 4 天前

{:10_277:}

萧随风 发表于 4 天前

没问题,输出正确。不报错都可以

Edward888 发表于 4 天前

萧随风 发表于 2026-4-21 15:09
没问题,输出正确。不报错都可以

{:5_109:}刚学两天,写出来后对不对也不清楚,{:5_99:}

QLJJJ 发表于 4 天前

{:10_254:}

第_个鱼油 发表于 4 天前

match怎么说
@FishC

FishC 发表于 4 天前

第_个鱼油 发表于 2026-04-21 20:14
match怎么说
@FishC

在 Python 编程中,match 是一个用于模式匹配的关键字,通常与 case 结合使用。它类似于其他语言中的 `switch` 语句,但功能更灵活,可以匹配值、类型或结构。以下是一个简单示例:


def explain_match(value):
    match value:
      case 1:
            return "数字一"
      case "hello":
            return "字符串 hello"
      case :
            return f"列表包含两个元素:{x} 和 {y}"
      case _:
            return "其他情况"

print(explain_match(1))         # 输出:数字一
print(explain_match("hello"))   # 输出:字符串 hello
print(explain_match())    # 输出:列表包含两个元素:10 和 20
print(explain_match(100))         # 输出:其他情况


在这个例子中,match 根据 value 的值匹配不同的模式,_ 是通配符,匹配所有未列出的情况。注意,match 语句仅在 Python 3.10 及以上版本中支持。如果使用旧版本,可以考虑用 if-elif-else 实现类似功能。

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

yeah221 发表于 昨天 14:05

能正确跑起来就行

Edward888 发表于 21 小时前

FishC 发表于 2026-4-20 21:32
鱼油,你好!

只要你的程序能够根据输入的分数正确输出对应的评级,并且符合题目要求,那么即使写法与标 ...

如何删除帖子

FishC 发表于 21 小时前

Edward888 发表于 2026-04-25 01:44
FishC 发表于 2026-4-20 21:32
鱼油,你好!

只要 ...

在Discuz!论坛中,删除帖子通常需要满足以下条件之一:


[*] 你是该帖的发布者,并且帖子还没有被其他用户回复(即帖子是“零回复”状态),通常可以在帖子底部或右上角找到“删除”按钮。
[*] 如果帖子已有回复,普通用户无法自行删除,需要联系版主或管理员处理。


如果找不到删除按钮,可以尝试使用报告功能,向版主说明需要删除该帖的理由。

请注意:删除操作不可撤销,建议先确认是否真的需要删除。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 和标准答案不一样,这样写算对吗?