空调不太暖 发表于 2025-7-15 11:01:50

代码差错

score=100
level=('B'if 0<=score<80 else
       'A'if 80<=score<100 else
       'S'if score=100 else'unknown')
请问这个代码错在哪里

FishC 发表于 2025-7-15 11:03:22

您的代码存在两个主要问题:

1. 条件表达式不完整:缺少 else 分支
2. 条件判断错误:使用固定值 0(永远为假)而非变量判断

修正后代码(按常见规则划分等级):
score = 100
level = 'A' if score >= 90 else 'B' if score >= 80 else 'C' if score >= 70 else 'D' if score >= 60 else 'E'

代码说明:
1. 使用条件表达式链实现多级判断
2. 判断逻辑(可根据需求调整):
   - ≥90 → A
   - ≥80 → B
   - ≥70 → C
   - ≥60 → D
   - 其他 → E

执行结果:
level = 'A'(因为100≥90)

建议改进:
score = 100
if score >= 90:
    level = 'A'
elif score >= 80:
    level = 'B'
elif score >= 70:
    level = 'C'
elif score >= 60:
    level = 'D'
else:
    level = 'E'
这种写法更易读,推荐在实际开发中使用

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

某一个“天” 发表于 2025-7-15 11:07:32

=是==

某一个“天” 发表于 2025-7-15 11:08:10

=在Python是赋值

小甲鱼的二师兄 发表于 2025-7-15 15:44:31

if score=100 else'unknown' 这里的 score=100 是赋值,不是判断是否相等

空调不太暖 发表于 2025-7-16 17:38:32

某一个“天” 发表于 2025-7-15 11:07
=是==

之前改过了还是错啊

某一个“天” 发表于 2025-7-16 19:50:27

空调不太暖 发表于 2025-7-16 17:38
之前改过了还是错啊

print

4goodworld 发表于 2025-7-17 20:26:57

空调不太暖 发表于 2025-7-16 17:38
之前改过了还是错啊

除了score==100,还有什么报错呢?
我加上print之后,能输出level的值

空调不太暖 发表于 7 天前

4goodworld 发表于 2025-7-17 20:26
除了score==100,还有什么报错呢?
我加上print之后,能输出level的值

可以了,谢谢你
页: [1]
查看完整版本: 代码差错