2014-06-16 16 views

cevap

18

Sen parantez içinde biçimlendirme dize için argümanlar koymak gerekir:

print (... % (name, last_name, gender, age)) 

Aksi halde, Python sadece dize biçimlendirme için bir argüman ve print işlev için bağımsız olarak geri kalanı name göreceksiniz.


Not ancak dize biçimlendirme işlemleri için % kullanarak bu günlerde hoş karşılanmaz söyledi. Modern yaklaşım str.format kullanmaktır:

>>> '%s %s' % 'a', 'b' # what you have 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
TypeError: not enough arguments for format string 
>>> 
>>> 
>>> '%s %s' % ('a', 'b') # correct solution 
'a b' 

'%s %s' % 'a', 'b'('%s %s' % 'a'), 'b' olarak değerlendirilir, biçim belirteçleri daha az argümanlar beri '%s %s' % 'a' bir hata üretir:

print ("So your name is {}, your last name is {}, you are {} and you are {} years old".format(name, last_name, gender, age)) 
+0

Bu iyi bir seçim Python eski dize biçimi yöntemiyle geride bırakmak ve bu yaklaşımı :) kullanmak, bu. Çok fazla baş ağrısını önler ve çıktıyı daha iyi biçimlendirmek için daha fazla esneklik sağlar. Örneğin, veri sütunlarını oluşturmak için boş alanlar koymak gibi. İşte bol miktarda örneği olan resmi belge :) -> https://pyformat.info/ – ivanleoncz

6

Sen parantez bir dizi gerekir.


print("So your name is %s, your last name is %s, you are %s and you are %s years old" % (name, last_name, gender, age)) 
İlgili konular