這個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