我已經使用Python 3.4.1運行了這段代碼,它工作正常,但是如果我使用Python 2.7.8,它會失敗,爲什麼?程序在Python 2.7.8中失敗,但在Python 3.4.1中運行
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
我已經使用Python 3.4.1運行了這段代碼,它工作正常,但是如果我使用Python 2.7.8,它會失敗,爲什麼?程序在Python 2.7.8中失敗,但在Python 3.4.1中運行
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
事實上,print
是在Python 3而不是Python的2.在Python 2的功能,你需要刪除()
和end
。作爲替代方案,您可以添加到from __future__ import print_function
在Python 2代碼中使用print
作爲在Python 3
當中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的print
聲明默認sep
是一個單一的空間,所以天真版本
print i * x, '\t',
將包括標籤之前的額外空間。此外,請注意,您的3.x版本可以稍微簡單一些:
print(i * x, end='\t')
您的問題標題與問題主體完全不同 - 請修復它。另外,添加錯誤信息會非常有幫助 – 2014-09-03 09:54:20
互聯網上有這麼多地方會告訴你Python 2.x和Python 3.x之間的區別(https://docs.python.org/3.0/ whatsnew/3.0.html一開始)。有一個通讀這些。如果您剛剛開始使用Python,請先從Python 3開始,暫時放棄Python 2。 – Evert 2014-09-03 09:58:17
您的問題*標題*在這裏脫離主題;我們無法在這裏爲您提供'最佳'選擇。標題和問題主體是完全不相關的,但是你的問題主體缺乏詳細的答案而沒有猜測。 ** Python 2中的代碼如何失敗?你預期會發生什麼? – 2014-09-03 10:06:41