print(*myVar) 语法无效

print(*myVar) invalid syntax

提问人:L0Lock 提问时间:2/17/2023 最后编辑:ShadowRangerL0Lock 更新时间:2/17/2023 访问量:61

问:

尝试尽可能简单地在各个行上打印列表项,如下所示:

https://www.geeksforgeeks.org/print-lists-in-python-4-different-ways/

>>> myVar = [1, 2, 3, 4, 5]
>>> print(*myVar)
  File "<stdin>", line 1
    print(*myVar)
          ^
SyntaxError: invalid syntax

我必须使用 Python 2.7.8,所以我想我必须在没有的情况下翻译它,但我失败了:()

>>> print *myVar
  File "<stdin>", line 1
    print *myVar
          ^
SyntaxError: invalid syntax

那么,这是一个语法问题吗?或者有没有更好的方法可以在 v2.7.8 上做到这一点?

列表 python-2.7 参数解包

评论

1赞 jonrsharpe 2/17/2023
你不能在 Python 2.x 中这样做,print 是一个语句,那就是函数参数解包。此外,您不应该再使用 Python 2.x。
0赞 L0Lock 2/17/2023
至于Python版本,我别无选择。那么我怎样才能实现我的目标呢?
0赞 Daniel Hao 2/17/2023
更好的方法是升级到 Python 3.10+ ;-)

答:

3赞 ShadowRanger 2/17/2023 #1

Python 2 的语句不支持参数解包(因为它不是一个函数,所以它没有参数),但即使在 Python 2 中,您也可以选择使用 Python 3 的函数,方法是将以下内容添加到文件的最顶部(我相信,除了 shebang 行和文件编码注释之外的任何行;__future__导入很奇怪,并且由于它们会更改编译器行为,因此它们需要在任何其他代码之前发生):printprint

from __future__ import print_function

一旦你这样做了,该语句就不再存在于该脚本中,你可以正常使用 Python 3 的函数,例如,对于你想要的任务,每行打印一个值,你会这样做:printprintmyVar

print(*myVar, sep='\n')

评论

0赞 L0Lock 2/17/2023
这听起来非常有趣。明天会尽快尝试上班,并让你知道。无论如何,谢谢!
0赞 L0Lock 2/17/2023
所以。。。。它在我的终端上完美运行,但在需要此脚本并使用相同 python 版本的软件中无法正常运行。我想我必须做一个for循环x)
0赞 ShadowRanger 2/18/2023
@L0Lock:你们是在 2.6 之前的 Python 版本上运行的吗?因为导入应该在 2.6 及更高版本的早期 alpha 版本中工作。__future__
0赞 L0Lock 2/18/2023
在我运行此脚本的软件中运行表明它正在使用 python 2.7.8(使用 beta 版本时为 2.7.11)。但是,这不是第一次应该在该 python 版本上运行的东西在该软件中不起作用,我想有些东西被阻止了。print(sys.version)