【问题标题】:invalid syntax for sep using print() python 3使用 print() python 3 的 sep 语法无效
【发布时间】:2016-06-05 02:45:30
【问题描述】:

我是 Python 新手。所以我被这个问题困住了,我认为如果我使用 Python 3 就不应该发生这个问题。

我有一个带有 (1,2,3,4,5,6) 的列表。我想以 123456 的形式打印出来(没有任何空格)。所以我写了这段代码:

a = [1,2,3,4,5,6] 
print(a, sep="")

但我总是得到这个错误:

        print(a, sep="") 
                    ^ 
    SyntaxError: invalid syntax

有人可以帮我吗?

【问题讨论】:

  • 确定您正在运行 Python 3 解释器吗?这正是我对 Python 2 所期望的错误(括号将围绕一个元组,而不是作为函数调用的一部分)。
  • 我是。我正在运行一个名为 Canopy 的软件,并且我使用了 python 3 之类的打印功能。这是它给我一个错误的唯一地方。

标签: python-3.x printing


【解决方案1】:

我无法弄清楚为什么该代码没有运行,除非你正在运行 python 2 解释器(正如@blckknght 所建议的那样)。但是,当我想这样做时,我使用以下代码,每次都有效:

lst=[1,2,3,4,5,6]
for i in lst: print(i, end="")
print()

希望这会有所帮助。

【讨论】:

    【解决方案2】:

    天篷是python2 based distribution。引用官方文档(强调我的):

    Enthought Canopy 订阅提供 Python 2.7.11,简单 安装和更新 400 多个预先构建和测试的科学 和分析 Python 包,例如 NumPy、Pandas、SciPy、Matplotlib、 和 IPython,加上一个集成的分析环境,图形 调试器、数据导入工具和在线 Python Essentials 和 Python 开发工具培训课程。学术用户可以要求免费 Canopy 学术许可证。

    如果您一直在该环境中使用打印功能,则必须在其前面加上 __future__ import

    from __future__ import print_function
    a = [1,2,3,4,5,6] 
    print(a, sep="")
    

    上面的代码在 Python 2.7 中运行良好。如果没有 __future__ 导入,它会产生您引用的确切异常。

    【讨论】:

    • 感谢您的回答。我试过你的解决方案,但它没有给我想要的输出。我得到了以下结果: [1, 2, 3, 4, 5, 6] 所以我自己尝试了一些东西: from future import print_function x = int(input()) for i in range(1 ,x+1): print(i, sep='', end='') 我得到以下输入 6 的输出:123456 所以我真的不明白为什么它没有给我列表的输出
    • 如果您想打印列表中的项目,请尝试print(*a, sep=""),不带括号或逗号。在 Python 2 中执行此操作的另一种方法(没有 print 函数)是 print "".join(str(x) for x in a)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-12
    • 1970-01-01
    相关资源
    最近更新 更多