iCo*_*dez 14 python syntax if-statement
我想知道以下代码是否有任何原因引发SyntaxError:
>>> if 1,2:
File "<stdin>", line 1
if 1,2:
^
SyntaxError: invalid syntax
>>>
Run Code Online (Sandbox Code Playgroud)
不1,2应该被Python解释为两项元组(然后True在if语句测试时会进行评估)?以下演示表明它应该:
>>> 1,2
(1, 2)
>>> tup = 1,2
>>> bool(tup)
True
>>>
Run Code Online (Sandbox Code Playgroud)
此外,如果您查看Python的if语句的文档,您将阅读:
if_stmt ::= "if" expression ":" suite
( "elif" expression ":" suite )*
["else" ":" suite]
正如您所看到的,它清楚地表明if语句的语法是if关键字后跟表达式.如果我没有弄错的话,1,2 确实是一种表达方式.
最后,可以说这种语法没用,为什么要允许呢?这是事实,但Python的Zen明确地说:
特殊情况不足以打破规则.
那么为什么SyntaxError呢?
小智 -3
你所做的并不是你所想的。
1==1,2:你声明了两件事。1==1=真且2。
1==(1,2)=False:它们甚至是两种不同的类型。
if 1==1,2: undoable: not a statements 如果你想想我向你展示的内容,那么 (,) 逗号不仅是多余的,而且是错误的。
| 归档时间: |
|
| 查看次数: |
387 次 |
| 最近记录: |