2013-06-22 100 views
0

在Python 2,蟒紋說法是不一個功能,而在Python 3這已經轉向成一個功能蟒蛇3 print語句澄清

當我輸入print(我得到一些hovertext (或類似的東西)

print(value,...,sep=' ', end='\n', file=sys.stdout, flush=False) 

我知道什麼是價值的手段,但是,什麼什麼的其他變量的意思是,什麼是巨蟒-3的print語句在Python 2中的優勢澄清的,將不勝感激(especially sep=' ')

+2

[...所以,這是它嗎?你爲什麼問這個?](http://docs.python.org/3/library/functions.html#print) –

+0

'sep'只是參數之間的分隔符。例如。 '印刷品(「John」,「Doe」,sep =「\ t」)'印刷'約翰\t Doe'。 – Th3Cuber

+0

懸停聲明是打印語句的規範。 – IcyFlame

回答

5

當您提供多個參數print他們通常會得到用空格分隔:

>>> print(1, 2, 3) 
1 2 3 

sep使您可以更改到別的東西:

>>> print(1, 2, 3, sep=', ') 
1, 2, 3 

通常情況下,print將添加一個新行到最後。 end使您可以更改:

>>> print('Hello.', end='') 
Hello.>>> 

通常print將寫入標準輸出。 file使您可以更改:

通常print沒有明確刷新流。如果你想避免額外的sys.stdout.flush(),你可以使用flush。這樣的效果通常很難看出來,但是如果不嘗試使用flush=True,則應該使其可見:

>>> import time 
>>> while True: 
...  print('.', end='', flush=True) 
...  time.sleep(0.5) 
1

Python 2沒有sep等價物,因爲print不是函數,也不能傳遞參數。你可以做的最接近的是與join

print ' '.join([value, ...]) 

至於file,你必須使用這個(彆扭,在我看來)語法:

print >> sys.stdout, ' '.join([value, ...]) 

我不會複製/粘貼這裏的文檔,所以如果你想知道這些參數是什麼,請閱讀它。