witter123 发表于 2023-5-7 11:28:17

有大佬能帮我看下python这个表达句哪里错了吗

https://i.hd-r.cn/e614b82996bd807f74362641f3cc721b.png

陶远航 发表于 2023-5-7 11:29:09

本帖最后由 陶远航 于 2023-5-7 11:32 编辑

这段代码中出现了一个语法错误,是因为在Python中单个语句应该写在一行上,而不是跨行。可以将level的赋值语句写成一行来修复这个错误,如下所示:
level = ("D" if 0 <= score < 60 else
         "C" if 60 <=score < 80 else
         "B" if 80 <=score < 100 else
         "A" if 90 <=score < 100 else
         "S" if score == 100 else
         "请输入0~100之间的分值")
在这个修改后的代码中,level的赋值语句被放置在多行上,但是每个表达式都以逗号结尾,以告诉Python这是一条多行语句。这样,就可以避免SyntaxError错误。

陶远航 发表于 2023-5-7 11:34:46

还有,你这是在IDLE中输入的吧,这个只能一行一行输入,不能多行一起输入

sfqxx 发表于 2023-5-7 11:58:00

这段代码之所以报错是因为条件判断语句中使用了多个 `if` 条件。在 Python 中,条件判断语句中只能够使用单个 `if` 抑或是一个 `if...elif...else...` 结构,而这里的 `if` 语句被用来连接多个判断条件,所以出现了语法错误。

要想让这段代码正常运行,最简单的修改方法是把 `elif` 改成 `else`,同时把各个条件之间的顺序调整好,使得它们先后不重不漏。以下是修改后的代码:


score = 66
level = ("请输入0~100之间的分值" if score < 0 or score > 100 else
         "S" if score == 100 else
         "A" if score >= 90 else
         "B" if score >= 80 else
         "C" if score >= 60 else
         "D")

print(level)
有用请设置最佳答案

harrydeng123 发表于 2023-5-8 20:31:30

为啥要写这么难以理解而又可能出现问题的代码呢?

woshizhangpengp 发表于 2023-5-15 19:45:26

大于80小于100   和   大于90小于100重复了

woshizhangpengp 发表于 2023-5-15 19:55:27

https://imgse.com/i/p92C4Dx
这样就可以了
页: [1]
查看完整版本: 有大佬能帮我看下python这个表达句哪里错了吗