【问题标题】:From python 3 to Python 2 (print()) [duplicate]从 python 3 到 Python 2 (print()) [重复]
【发布时间】:2016-11-28 01:16:16
【问题描述】:

我认为下面这段代码是用 python 3 编写的,我的 python 2 无法运行它。 “结束”有一些问题。我该如何解决?我不知道 end 背后的逻辑是什么,我对 python 很陌生

非常感谢任何帮助!

def myPrint(itp):
    for i in range(10):
        print("**",end=="")
        for j in range(10):
            print(itp[i][j],"**",end=="")
        print()

【问题讨论】:

  • “一些问题”...您是否尝试过阅读有关 Python 2 的 print 语句和 Python 3 的 print 函数的信息?看起来您收到一条错误消息并立即提出问题而没有做任何研究(在提出新问题之前您应该这样做)。

标签: python python-2.7 python-3.x


【解决方案1】:

您的代码中有两个错误,您需要将两个end=="" 替换为end=""。您不应该将参数end 与空字符串进行比较,但您希望以空字符串结束打印,因此,对参数end 进行赋值。

Python 3.x 中,end='' 部分将在显示的字符串而不是换行符之后放置分配给end 的任何参数(此处为空字符串)。

如果您想在python2 中拥有python3 的打印功能,只需导入即可:

from __future__ import print_function

【讨论】:

  • 我知道,但我收到一个错误 SyntaxError: invalid syntax
  • 你能显示错误吗?
  • 好的,现在它变得更好了,但它不允许我打印简单的表达式,例如:print var
  • 这是因为您需要在表达式周围加上括号。
  • 您能否发布生成 SyntaxError 的整个代码? Here is an online demo that works fine for me
【解决方案2】:

(我假设end 之后的双 == 是一个错字。结束为 kwarg 确定行尾;代码可能最初是 print("**",end="") 和一个 = 字符)

要获取打印函数语义,您可以设置__future__ flag print_function,通过使用启动文件

from __future__ import print_function

请注意,在 Python 2 下运行完整的 Python 3 程序所需的更改远比简单地启用一些未来标志要广泛得多(添加它时,请考虑启用 unicode_literals)。到目前为止,运行 Python 3 程序最简单的方法是安装 Python 3 解释器。

【讨论】:

    猜你喜欢
    • 2021-05-07
    • 1970-01-01
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 2015-12-26
    • 2021-07-17
    • 2021-09-02
    • 2018-05-11
    相关资源
    最近更新 更多