如何将此Python 2代码转换为Python 3?

如何将此Python 2代码转换为Python 3?,python,python-3.x,Python,Python 3.x,此Python代码在版本2中提供了一个二维表。但是,在Python 3中,它不起作用: i=1 而我将第二个打印调用移出循环。在循环内部,在每个数字之间添加一个换行符 i = 1 while (i <= 10): print (2*i, ' ',end='') i += 1 print() print2*i''与Python 2.x print2*i''不同,因为函数调用末尾的逗号只是作为参数终止符,实际上不可用于函数 在Python3中使用print2*i',end='

此Python代码在版本2中提供了一个二维表。但是,在Python 3中,它不起作用:

i=1 而我将第二个打印调用移出循环。在循环内部,在每个数字之间添加一个换行符

i = 1
while (i <= 10):
    print (2*i, ' ',end='')
    i += 1
print()
print2*i''与Python 2.x print2*i''不同,因为函数调用末尾的逗号只是作为参数终止符,实际上不可用于函数

在Python3中使用print2*i',end=''来完成同样的任务,尽管您可能完全可以省略“”参数,并在end参数中添加两个空格

既然您已经标记了这个pythonic,我可能还应该指出:

i = 1
while i <= 10:
    i += 1

该代码不会产生您所说的在任何Python版本上所做的事情。在Python2上,print2*i''打印一个元组。在Python3上,print是一个函数,因此没有元组

在Python 2上,输出为:

2 4 6 8 10 12 14 16 18 20
(2, ' ')
()
(4, ' ')
()
(6, ' ')
()
(8, ' ')
()
(10, ' ')
()
(12, ' ')
()
(14, ' ')
()
(16, ' ')
()
(18, ' ')
()
(20, ' ')
()
2  

4  

6  

8  

10  

12  

14  

16  

18  

20  
在Python 3上,输出为:

2 4 6 8 10 12 14 16 18 20
(2, ' ')
()
(4, ' ')
()
(6, ' ')
()
(8, ' ')
()
(10, ' ')
()
(12, ' ')
()
(14, ' ')
()
(16, ' ')
()
(18, ' ')
()
(20, ' ')
()
2  

4  

6  

8  

10  

12  

14  

16  

18  

20  
在你发布你真正使用的代码之前,不可能有更多的帮助

print(*(str(2*x) for x in range(1,11)))
或更短:

for x in range(1, 11):
    print(2*x, end=' ')
print()

现在你知道区别是什么了-

python2程序的代码和输出是什么?这里打印调用不是你的问题:你是如何更改代码的?-1不起作用对我们来说是没有希望的。它以什么方式不起作用。以上给出的输出是Python2程序的输出。它应该出现在一条水平线上,如上图所示。在Python3中,它显示为2、4、6、8等等,直到20年都没有现存的版本Python的一部分产生了这个输出。请更加努力。在生成器版本中不需要end=。此end参数有效。谢谢你的工作。这就是我一直在寻找的