Python2.x是否总是为print语句返回字符串?

Python2.x是否总是为print语句返回字符串?,python,types,printf,python-2.x,Python,Types,Printf,Python 2.x,我在玩弄Python3.8和2.7时发现Python3中的print函数不允许在print中使用前导零。见下文: >>> print(01) File "<stdin>", line 1 print(01) ^ SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for oct

我在玩弄Python3.8和2.7时发现Python3中的print函数不允许在print中使用前导零。见下文:

    >>> print(01)
  File "<stdin>", line 1
    print(01)
           ^
SyntaxError: leading zeros in decimal integer literals are not permitted; use an 0o prefix for octal integers
我明确要求打印一个字符串。尽管在Python 2.7中,以下语句没有错误:

>>> print '01'
01
它只是返回我所要求的。这是否意味着Python2.x总是将打印值转换为字符串?

在原始Python2中,打印是一条语句,根本不返回值

>>> x=print 'hi'
  File "<stdin>", line 1
    x=print 'hi'
          ^
SyntaxError: invalid syntax
对于1 vs 01,在Python 2中,前导零的数字是八进制:

>>> 010
8
此语法在Python3中是非法的,因此您会得到SyntaxError:invalid token。这发生在print语句看到发生了什么之前,因此它与print无关

如果需要,正确的语法是0o。。。例如:

在最初的Python2中,print是一条语句,根本不返回值

>>> x=print 'hi'
  File "<stdin>", line 1
    x=print 'hi'
          ^
SyntaxError: invalid syntax
对于1 vs 01,在Python 2中,前导零的数字是八进制:

>>> 010
8
此语法在Python3中是非法的,因此您会得到SyntaxError:invalid token。这发生在print语句看到发生了什么之前,因此它与print无关

如果需要,正确的语法是0o。。。例如:


看起来除了第一种情况,你在所有情况下都用引号括起来了…除了第一种情况,你在所有情况下都用引号括起来了…谢谢!你可能已经注意到我对基本概念缺乏理解,我是个新手。所以这真的很有帮助。@FlavioHF我建议您不要使用过时的Python版本,如果您可以帮助的话:谢谢!你可能已经注意到我对基本概念缺乏理解,我是个新手。所以这真的很有帮助。@FlavioHF我建议您不要使用过时的Python版本,如果您可以帮助的话:
>>> 0o10
8