【问题标题】:Python SyntaxError when using end argument with print function使用带有打印功能的结束参数时的Python SyntaxError
【发布时间】:2013-08-02 15:34:29
【问题描述】:

我不知道为什么会出错,因为我完全按照书上说的做了

>>> os.getcwd()
'C:\\Users\\expoperialed\\Desktop\\Pyt…'
>>> data = open('sketch.txt')
>>> print(data.readline(),end="")
SyntaxError: invalid syntax

【问题讨论】:

  • 你用的是什么python版本? python --version
  • 检查您的 Python 版本。在 Python 3 之前,print 不是函数,如果您尝试像这样调用它,这是 2.x 给出的错误。
  • 你真正想做的是去下载/安装 python 3.3 并且永远不再使用 python 2。另外,赞成这个问题:)
  • 是的,那是你的问题。正如答案所说,如果您需要使用旧版本,请升级您的 Python 或查找涵盖旧版本的书籍或在线教程。
  • @AnttiHaapala 太基于意见了。在我看来,Python 2.7 比 Python 3.3 好得多。

标签: python


【解决方案1】:

或者,在 Python 2 中使用您想要的打印功能:

>>> from __future__ import print_function

由于__future__ 模块的工作方式,它需要位于 Python 程序的顶部。

【讨论】:

    【解决方案2】:

    我认为您的问题是您使用的是 Python 2.x 并且正在使用 Python 3.x 的语法。在 Python 3.x 中,print 是内置的,可以这样使用。但是,在 2.x 中,它是关键字,不能。如果您使用的是 2.x,请执行以下操作:

    print data.readline(),
    

    查看您使用的 Python 版本的一种方法是:

    import sys
    if sys.version_info.major == 2:
        # We are running 2.x
    elif sys.version_info.major == 3:
        # We are running 3.x
    

    或者,从终端:

    $ python --version
    

    解决此问题的最佳方法可能是升级到 Python 3.x。但是,如果您不能,那么您可能需要查看__future__ 模块。它可以使您可以在 2.x 中使用 Python 3.x 的 print 函数:

    >>> from __future__ import print_function
    >>> print("yes!")
    yes!
    >>> print("a", "b", sep=",")
    a,b
    >>>
    

    【讨论】:

    • 添加了缺失的 , (这就是 end='') 所做的
    【解决方案3】:

    您似乎运行了错误的 python 版本。目前有 2 个版本的 Python 运行,2 和 3。在 Python 2 中,print 是一个语句,因此您也应该更改代码

     print data.readline(), # The trailing comma to stop the newline
    

    在 3 中,它是一个函数,应该按照你的书的显示方式使用。

    看起来你的书是用 Python 3 编写的,所以你应该升级你的 Python(对于初学者来说,没有理由不使用 Python 3)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 2011-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多