程序在Python 2.7.8中失败,但在Python 3.4.1中运行

时间:2014-09-03 09:52:56

标签: python

我使用Python 3.4.1运行此代码并且它可以工作,但如果我使用Python 2.7.8它会失败,为什么?

i=1
while i<10:
    for x in(1,2,3,4,5,6,7,8,9):
        print (i*x,'\t',end='')
        if x==9:   
            print('\n')
            i=i+1

2 个答案:

答案 0 :(得分:1)

事实上,print是Python 3中的一个函数,但不是Python 2.在Python 2中,您需要删除()end。作为替代方案,您可以在Python 2的代码中添加from __future__ import print_function以使用Python 3中的print

答案 1 :(得分:1)

Python版本2.x和3.x之间的重大变化是print is a function - 在2.x中它是语句。您有两种选择,使用:

from __future__ import print_function

在脚本的顶部以使用2.x中的新函数,或者使用旧语法的单独的2.x版本:

print '{0}\t'.format(i * x), # note trailing comma to suppress newline

在我看来,前者更容易。

请注意,2.x sep语句的默认print等效值是单个空格,因此天真的版本

print i * x, '\t',

会在标签前包含额外的空格。另请注意,您的3.x版本可能稍微简单一些:

print(i * x, end='\t')