为什么这些代码行在 python 中是合法的?
Why are these lines of code legal in python?
编辑: 看来这个问题与列表切片混淆了,并且使用了错误的代码。进一步澄清了问题。
请问python.
下面2行代码字面意思是什么意思
In [51]: data = list(range(10))
In [53]: data[-1]
背景
我不小心 运行 通过 python 语法检查器 (pylint) 输出了上述原始 Jupyter 笔记本,令人惊讶的是它没有抛出语法错误,而是
In [53]: data[-1]
^ (bad-whitespace)
code2.py:1:0: C0111: Missing module docstring (missing-docstring)
code2.py:1:0: E0602: Undefined variable 'In' (undefined-variable)
code2.py:1:9: E0602: Undefined variable 'data' (undefined-variable)
code2.py:2:0: E0602: Undefined variable 'In' (undefined-variable)
code2.py:2:9: E0602: Undefined variable 'data' (undefined-variable)
------------------------------------------------------------------------
Your code has been rated at -115.00/10 (previous run: -90.00/10, -25.00)
所以我试着理解这些代码行的字面意思。
我尝试插入缺失的变量。
这是我得到以下看起来像字典作业的结果的地方。
In = {}
data = ['apple'] # This list needed values, otherwise data[-1] threw an error
In [51]: data = list(range(10))
In [53]: data[-1]
print(In) # {51: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
# Why were there no values for key 53? (either {53: 'apple'})
我无法真正理解这两行代码是怎么回事。
我不认为这行代码是合法的In [51]: data = list(range(10))
,既然是这样,为什么之后 In [53]
值没有被分配?
因此,我们将不胜感激对参考资料的任何解释或指导。谢谢。
您从未为
赋值
In [53]
您只需访问字典的这一部分。如果你这样做,条目就会出现在字典中。
In[53]: data[-1] = 'hello world'
Result: {51: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 53: 'hello world'}
如果有人和我有同样的问题,我会回答这个问题。
感谢@Goyo 指出 Variable Annotations 是在 Python 3.6
中引入的
variable: annotation = assignment
与使用注释相比,此语法用于注释变量中的类型(fruit: str = 'apple'
与 fruit = 'apple' # type: str
)。
注释字段中的值未严格执行,这就是语法合法的原因。
第一个语句
In [51]: data = list(range(10))
Variable = In [51]
Annotation = data
Assignment = list(range(10))
第二条语句
In [53]: data[-1]
Variable = In [53]
Annotation = data[-1]
编辑: 看来这个问题与列表切片混淆了,并且使用了错误的代码。进一步澄清了问题。
请问python.
下面2行代码字面意思是什么意思In [51]: data = list(range(10))
In [53]: data[-1]
背景
我不小心 运行 通过 python 语法检查器 (pylint) 输出了上述原始 Jupyter 笔记本,令人惊讶的是它没有抛出语法错误,而是
In [53]: data[-1]
^ (bad-whitespace)
code2.py:1:0: C0111: Missing module docstring (missing-docstring)
code2.py:1:0: E0602: Undefined variable 'In' (undefined-variable)
code2.py:1:9: E0602: Undefined variable 'data' (undefined-variable)
code2.py:2:0: E0602: Undefined variable 'In' (undefined-variable)
code2.py:2:9: E0602: Undefined variable 'data' (undefined-variable)
------------------------------------------------------------------------
Your code has been rated at -115.00/10 (previous run: -90.00/10, -25.00)
所以我试着理解这些代码行的字面意思。
我尝试插入缺失的变量。
这是我得到以下看起来像字典作业的结果的地方。
In = {}
data = ['apple'] # This list needed values, otherwise data[-1] threw an error
In [51]: data = list(range(10))
In [53]: data[-1]
print(In) # {51: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]}
# Why were there no values for key 53? (either {53: 'apple'})
我无法真正理解这两行代码是怎么回事。
我不认为这行代码是合法的In [51]: data = list(range(10))
,既然是这样,为什么之后 In [53]
值没有被分配?
因此,我们将不胜感激对参考资料的任何解释或指导。谢谢。
您从未为
赋值In [53]
您只需访问字典的这一部分。如果你这样做,条目就会出现在字典中。
In[53]: data[-1] = 'hello world'
Result: {51: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], 53: 'hello world'}
如果有人和我有同样的问题,我会回答这个问题。
感谢@Goyo 指出 Variable Annotations 是在 Python 3.6
中引入的variable: annotation = assignment
与使用注释相比,此语法用于注释变量中的类型(fruit: str = 'apple'
与 fruit = 'apple' # type: str
)。
注释字段中的值未严格执行,这就是语法合法的原因。
第一个语句
In [51]: data = list(range(10))
Variable = In [51]
Annotation = data
Assignment = list(range(10))
第二条语句
In [53]: data[-1]
Variable = In [53]
Annotation = data[-1]