wim*_*wim 42 python syntax tuples
是否有一个参考某处确定何时用括号括起元组是否需要?
这是最近让我感到惊讶的一个例子:
>>> d = {}
>>> d[0,] = 'potato'
>>> if 0, in d:
File "<stdin>", line 1
if 0, in d:
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
eca*_*mur 42
使用逗号标记创建元组的表达式组合称为expression_list.运算符优先级的规则不包括表达式列表; 这是因为表达式列表本身不是表达式; 它们在括在括号中时成为表达式.
因此,expression_list在Python中的任何地方都允许使用未被封闭的语言语法特别允许的语言,而不是在expression需要的地方.
例如,if语句的语法如下:
if_stmt ::= "if" expression ":" suite
( "elif" expression ":" suite )*
["else" ":" suite]
Run Code Online (Sandbox Code Playgroud)
由于expression引用了生产,expression_list因此不允许未公开的作为if声明的主题.但是,for语句接受expression_list:
for_stmt ::= "for" target_list "in" expression_list ":" suite
["else" ":" suite]
Run Code Online (Sandbox Code Playgroud)
所以允许以下内容:
for x in 1, 2, 3:
print(x)
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 13
在允许您使用该expression_list术语的任何地方,您不需要使用括号.
该if声明需要一个expression,并且不支持expression_list.
允许的语法示例expression_list:
Grepping 表达式,Simple和Compound语句文档expression_list将告诉您expression_listPython语法中使用的所有位置.
| 归档时间: |
|
| 查看次数: |
6064 次 |
| 最近记录: |