在循环中的内联if语句中使用break会导致语法错误

基杜斯

我在尝试这个

while True:
    break if input() == 'q' else input()

这会导致语法错误

    break if input() == 'q' else input()
           ^
SyntaxError: invalid syntax

我知道还有其他方法可以做到这一点,但我想知道为什么这没有用。

谢谢!

四人

这就是所谓的条件式和用于该格拉默定义像这样

conditional_expression ::=  or_test ["if" or_test "else" expression]

or_test这样定义

or_test  ::=  and_test | or_test "or" and_test

and_test这样定义

and_test ::=  not_test | and_test "and" not_test

not_test被定义像这样

not_test ::=  comparison | "not" not_test

comparison被定义像这样

comparison    ::=  or_expr ( comp_operator or_expr )*

comp_operator被定义像这样

comp_operator ::=  "<" | ">" | "==" | ">=" | "<=" | "!="
                   | "is" ["not"] | ["not"] "in"

or_expr被定义像这样

or_expr  ::=  xor_expr | or_expr "|" xor_expr

xor_expr被定义像这样

xor_expr ::=  and_expr | xor_expr "^" and_expr

and_expr被定义像这样

and_expr ::=  shift_expr | and_expr "&" shift_expr

shift_expr被定义像这样

shift_expr ::=  a_expr | shift_expr ( "<<" | ">>" ) a_expr

a_expr被定义像这样

a_expr ::=  m_expr | a_expr "+" m_expr | a_expr "-" m_expr

m_expr被定义像这样

m_expr ::=  u_expr | m_expr "*" u_expr | m_expr "//" u_expr | m_expr "/" u_expr
            | m_expr "%" u_expr

u_expr被定义像这样

u_expr ::=  power | "-" u_expr | "+" u_expr | "~" u_expr

power被定义像这样

power ::=  primary ["**" u_expr]

primary被定义像这样

primary ::=  atom | attributeref | subscription | slicing | call

break语法中没有where语句,这就是为什么它由于编译时错误而失败。

引用文档,

该表达式x if C else y首先计算条件,C而不是x如果C为true,x则求值并返回其值;否则为false 否则,y将求值并返回其值。

因此,xy应该是可以评估的东西,但是它break无法评估的控制流语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在循环中的内联if语句中使用break会导致语法错误

来自分类Dev

为什么备用语法switch语句中的输出会导致语法错误

来自分类Dev

在OCaml的assert语句中使用<>会导致错误

来自分类Dev

使用逗号会导致语法错误

来自分类Dev

为什么在单个语句中分配动态对象的成员变量会导致PHP出现语法错误?

来自分类Dev

在ADOdb预备语句中使用LIKE时出现SQL语法错误

来自分类Dev

如何在case语句中使用流程替换而不出现语法错误?

来自分类Dev

MySQL-在where语句中使用<>时出现语法错误(插入)

来自分类Dev

速记 c if else 语句和 break 在循环中的组合使用导致错误

来自分类Dev

为什么在Shell脚本中使用<()会导致语法错误?

来自分类Dev

For循环if语句语法错误

来自分类Dev

使用Access和Pyodbc的INSERT语句中的语法错误

来自分类Dev

在 for 循环中添加 if 语句会导致“在“}”中出现“意外的 '}””错误

来自分类Dev

使用jquery动态创建div会导致语法错误

来自分类Dev

JavaScript switch语句中的语法错误

来自分类Dev

OPEN语句中的Fortran语法错误

来自分类Dev

SELECT语句中的语法错误

来自分类Dev

我的if else语句中的语法错误

来自分类Dev

WHILE语句中的MySQL语法错误

来自分类Dev

SQL语句中的语法错误问题

来自分类Dev

Perl在if语句中获取语法错误

来自分类Dev

INSERT INTO语句中的语法错误

来自分类Dev

JavaScript switch语句中的语法错误

来自分类Dev

在INSERT INTO语句中获取语法错误

来自分类Dev

sql 语句中的语法错误?

来自分类Dev

if 语句中的冒号语法错误

来自分类Dev

OleDbException: INSERT INTO 语句中的语法错误

来自分类Dev

条件语句中的 Bash 语法错误

来自分类Dev

MySQL INSERT INTO 语句中的语法错误

Related 相关文章

  1. 1

    在循环中的内联if语句中使用break会导致语法错误

  2. 2

    为什么备用语法switch语句中的输出会导致语法错误

  3. 3

    在OCaml的assert语句中使用<>会导致错误

  4. 4

    使用逗号会导致语法错误

  5. 5

    为什么在单个语句中分配动态对象的成员变量会导致PHP出现语法错误?

  6. 6

    在ADOdb预备语句中使用LIKE时出现SQL语法错误

  7. 7

    如何在case语句中使用流程替换而不出现语法错误?

  8. 8

    MySQL-在where语句中使用<>时出现语法错误(插入)

  9. 9

    速记 c if else 语句和 break 在循环中的组合使用导致错误

  10. 10

    为什么在Shell脚本中使用<()会导致语法错误?

  11. 11

    For循环if语句语法错误

  12. 12

    使用Access和Pyodbc的INSERT语句中的语法错误

  13. 13

    在 for 循环中添加 if 语句会导致“在“}”中出现“意外的 '}””错误

  14. 14

    使用jquery动态创建div会导致语法错误

  15. 15

    JavaScript switch语句中的语法错误

  16. 16

    OPEN语句中的Fortran语法错误

  17. 17

    SELECT语句中的语法错误

  18. 18

    我的if else语句中的语法错误

  19. 19

    WHILE语句中的MySQL语法错误

  20. 20

    SQL语句中的语法错误问题

  21. 21

    Perl在if语句中获取语法错误

  22. 22

    INSERT INTO语句中的语法错误

  23. 23

    JavaScript switch语句中的语法错误

  24. 24

    在INSERT INTO语句中获取语法错误

  25. 25

    sql 语句中的语法错误?

  26. 26

    if 语句中的冒号语法错误

  27. 27

    OleDbException: INSERT INTO 语句中的语法错误

  28. 28

    条件语句中的 Bash 语法错误

  29. 29

    MySQL INSERT INTO 语句中的语法错误

热门标签

归档