这个Python代码在版本2中给出了一个二维表。然而在Python 3中它不起作用。如何将此Python 2代码转换为Python 3?
i = 1
while (i <= 10):
print (2*i, ' ',)
i += 1
print()
输出是:
2 4 6 8 10 12 14 16 18 20
虽然在Python 3中要求我已在print
声明的修改,它仍然无法正常工作。我如何使这个代码在Python 3中工作?
这个Python代码在版本2中给出了一个二维表。然而在Python 3中它不起作用。如何将此Python 2代码转换为Python 3?
i = 1
while (i <= 10):
print (2*i, ' ',)
i += 1
print()
输出是:
2 4 6 8 10 12 14 16 18 20
虽然在Python 3中要求我已在print
声明的修改,它仍然无法正常工作。我如何使这个代码在Python 3中工作?
print(2*i, ' ',)
是不一样的Python 2.x的print 2*i, ' ',
因为处的逗号在函数调用结束只是作为参数终止符,并不实际可用的功能。
使用print(2*i, ' ', end = ' ')
在Python 3来完成同样的事情(尽管你可能离开了' '
参数完全,并把2位的end
参数。
既然你已经标记了这个“Python化”,我或许应该还指出:
i = 1
while i <= 10:
i += 1
模式不是很Python的;成语是:
for i in range(1,11):
print(whatever)
此结束参数起作用。谢谢 – Muavia
该代码不会产生您在任何版本的Python上所说的操作。在Python 2上,print(2*i, ' ',)
打印一个元组。在Python 3中,print
是一个函数,所以没有元组。
Python的2的输出是:
(2, ' ')
()
(4, ' ')
()
(6, ' ')
()
(8, ' ')
()
(10, ' ')
()
(12, ' ')
()
(14, ' ')
()
(16, ' ')
()
(18, ' ')
()
(20, ' ')
()
在Python 3的输出是:
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()
现在你找出区别是什么。 :-)
是的工作。这就是我一直在寻找的东西 – Muavia
你的python2程序的代码和输出是什么? – steabert
'print()'调用在这里不是你的问题:http://ideone.com/QOjCG *你是否改变了你的代码? – Amber
什么不工作? – KillianDS