我使用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
答案 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')