在字符串格式化时,当单独解包元组时出现带星号表达式的语法错误。
- 论坛
- 在字符串格式化时,当单独解包元组时出现带星号表达式的语法错误。
9 浏览
在字符串格式化时,当单独解包元组时出现带星号表达式的语法错误。
我在Python 3.5.2中使用REPL尝试了以下内容:
>>> a = (1, 2)
>>> '%d %d %d' % (0, *a)
'0 1 2'
>>> '%d %d %d' % (*a, 3)
'1 2 3'
>>> '%d %d' % (*a)
File "
SyntaxError: 在此处不能使用星号表达式
>>>
我的问题是,为什么会出现这个错误?
更严肃一点的语气:我想要一个解答或参考,详细说明使用星号表达式的各种情况,因为有时我会对其行为感到惊讶...
补充说明
为了反映紧随我的问题的一些启发性评论,我添加了以下代码
>>> '%d %d' % (, *a)
File "
'%d %d' % (, *a)
^
SyntaxError: 无效的语法
>>> '%d %d' % (*a,)
'1 2'
>>>
(在发布原始问题之前,我已经尝试了(, a)
部分,但我忽略了它,因为错误与星号无关。)
在Python ≥ 3.5中有一种语法“只是起作用”,但我仍然希望能够理解一些背后的原理。