Python'da birden fazla argüman yazdırma

Bu sadece kodumun bir parçası:

print("Total score for %s is %s  ", name, score)

Ama çıktısını almak istiyorum:

"(isim) için toplam puan (puan)"

burada name bir liste içindeki bir değişken ve score bir tamsayıdır. Eğer yardımı olacaksa bu Python 3.3.

Bunu yapmanın birçok yolu vardır. Mevcut kodunuzu % biçimlendirmesini kullanarak düzeltmek için bir tuple geçirmeniz gerekir:

  1. Bir tuple olarak iletin:

     print("%s için toplam puan %s" % (isim, puan))

Tek elemanlı bir tuple ('this',) şeklinde görünür.

İşte bunu yapmanın diğer bazı yaygın yolları:

  1. Sözlük olarak geçirin:

     print("%(n)s için toplam puan %(s)s" % {'n': isim, 's': puan})

Ayrıca, okunması biraz daha kolay olabilecek yeni stil dize biçimlendirmesi de var:

  1. Yeni stil dize biçimlendirmesini kullanın:

     print("{} için toplam puan {}".format(name, score))
  2. Sayılarla yeni stil dize biçimlendirmesi kullanın (yeniden sıralamak veya aynı sayıyı birden çok kez yazdırmak için kullanışlıdır):

     print("{0} için toplam puan {1}".format(name, score))
  3. Açık adlarla yeni stil dize biçimlendirmesi kullanın:

     print("{n} için toplam puan {s}".format(n=name, s=score))
  4. Dizeleri birleştirin:

     print("Toplam puan " + str(name) + " is " + str(score))

Bence en net ikisi:

  1. Sadece değerleri parametre olarak geçirin:

     print("Total score for", name, "is", score)

    Yukarıdaki örnekte boşlukların print tarafından otomatik olarak eklenmesini istemiyorsanız, sep parametresini değiştirin:

     print("Total score for ", name, " is ", score, sep='')

    Eğer Python 2 kullanıyorsanız, son ikisini kullanamazsınız çünkü print' Python 2'de bir fonksiyon değildir. Bununla birlikte, bu davranışıfuture`'dan içe aktarabilirsiniz:

     from __future__ import print_function
  2. Python 3.6'daki yeni f-dize biçimlendirmesini kullanın:

     print(f'{isim} için toplam puan {skor}')
Yorumlar (4)

Basit tutmak gerekirse, ben şahsen dize birleştirmeyi seviyorum:

print("Total score for " + name + " is " + score)

Hem Python 2.7 hem de 3.X ile çalışır.

NOT: Eğer score bir int ise, onu str'ye dönüştürmelisiniz:

print("Total score for " + name + " is " + str(score))
Yorumlar (0)

Sadece dene:

print("Total score for", name, "is", score)
Yorumlar (0)