2011-06-22 17 views
9
for x in range(1, 11): 
    print repr(x).rjust(2), repr(x*x).rjust(3), 
    # Note trailing comma on previous line 
    print repr(x*x*x).rjust(4) 

sonuç: neden can yazar yazma Baskı deyimi yineBu koddaki son virgülün kullanımı nedir?

bir satır devam sembolü ise
1 1 1 
2 4 8 
3 9 27 
4 16 64 
5 25 125 
6 36 216 
7 49 343 
8 64 512 
9 81 729 
10 100 1000 

?

Ben Yazdır kaldırırsanız:

for x in range(1, 11): 
    print repr(x).rjust(2), repr(x*x).rjust(3), 
    # Note trailing comma on previous line 
    repr(x*x*x).rjust(4) 

sonucu:

1 1 2 4 3 9 4 16 5 25 6 36 7 49 8 64 9 81 10 100 

Açıkçası son satırı görmezden olduğunu. Niye ya? Bu bir açıklama değil mi?

Ben ikinci satıra geri son ifadeyi koyarsanız:

for x in range(1, 11): 
    print repr(x).rjust(2), repr(x*x).rjust(3), repr(x*x*x).rjust(4) 

sonucu:

1 1 1 
2 4 8 
3 9 27 
4 16 64 
5 25 125 
6 36 216 
7 49 343 
8 64 512 
9 81 729 
10 100 1000 

cevap

19

Bu metnin sonunda bir yeni satır yazdırmasını print durur.

Dave'in işaret ettiği gibi, documentation diyor ki:…. Baskı ifadesi virgülle bitmediği sürece "A" \ n 'karakteri yazılır. "

+4

Dokümantasyon: http://docs.python.org/reference/simple_stmts.html#grammar-token-print_stmt. Baskı ifadesi virgülle bitmediği sürece "A" \ n 'karakteri yazılır. " –

+0

Şimdi anlıyorum ..... bu arada python benim ikinci örneğim gibi tek bir satırda tek bir ifadeyle tamam mı? İfadeyi görmezden geliyor mu? – lamwaiman1988

+0

Bir ifade geçerli bir ifadedir. Eğer olmasaydı, ekstra sözdizimi olmadan fonksiyonları çağırmazsınız. –

3

Baskı ifadesinin sonundaki virgül, yeni satır karakterinin dizeye eklenmesini önler. senin tweaked kodunda

(http://docs.python.org/reference/simple_stmts.html#the-print-statement bakınız): Python ifadeleri genellikle satırla ayırarak çünkü

for x in range(1, 11): 
    print repr(x).rjust(2), repr(x*x).rjust(3), 
    # Note trailing comma on previous line 
    repr(x*x*x).rjust(4) 

son satırı sadece kullanılmayan bir ifadeyi haline gelir. Baskı ifadesinin satırının sonuna bir ters eğik çizgi (\) - Python çizgisi devam karakteri eklediyseniz ve yorumu kaldırdıysanız, repr(x*x*x).rjust(4) yazdırma ifadesine eklenir.

daha açık olmak gerekirse:

print repr(x).rjust(2), repr(x*x).rjust(3), repr(x*x*x).rjust(4) 

ve

print repr(x).rjust(2), repr(x*x).rjust(3), \ 
repr(x*x*x).rjust(4) 

eşdeğerdir ancak

print repr(x).rjust(2), repr(x*x).rjust(3), 
repr(x*x*x).rjust(4) 

değildir. Baskı ifadesinin bu tuhaflığı, bir işlev yaparak Python 3'te düzeltilen şeylerden biridir. (Bkz. http://docs.python.org/release/3.0.1/whatsnew/3.0.html#print-is-a-function)