为何Python列表支持L=L*3却不支持将L*=3传入print?
Python中
print(L*=3)语法错误的原因分析 测试代码
L=[5,10,15,20] print(L*=3)
预期结果
[5,10,15,20,5,10,15,20,5,10,15,20]
错误原因及解决方法
这既不是Python的Bug,也不是IDLE或VS Code的软件问题,完全是Python语法规则的限制:
- Python里的
*=这类增强赋值运算符属于「语句」,语句的作用是执行操作、改变变量状态,它没有返回值;而print()函数要求传入的是「表达式」——也就是能产生一个值的代码片段。 - 你写的
L *=3是把列表L重复3次后重新赋值给L,这是一个赋值操作语句,不能直接塞进print()里当参数用。
要实现预期效果,有两种写法:
- 拆分语句,先执行赋值再打印:
L = [5,10,15,20] L *= 3 print(L)
- 直接用乘法表达式作为
print()的参数(不会修改原列表L):
L = [5,10,15,20] print(L * 3)
内容的提问来源于stack exchange,提问作者Sanat Kumar Tudu
相关产品推荐
相关产品推荐

