Ini hanya sebuah cuplikan kode saya:
print("Total score for %s is %s ", name, score)
Tapi saya ingin mencetak:
"Total skor untuk (nama) (skor)"
di mana nama
adalah sebuah variabel dalam sebuah daftar dan nilai
adalah bilangan bulat. Ini adalah Python 3.3 jika itu membantu.
Ada banyak cara untuk melakukan hal ini. Untuk memperbaiki kode anda saat ini menggunakan %
-format, anda harus lulus dalam sebuah tuple:
print("Total skor untuk %s %s" % (nama, nilai))
Sebuah tuple dengan elemen tunggal terlihat seperti ('ini',)
.
Berikut ini adalah beberapa cara umum lainnya untuk melakukan hal itu:
print("Total skor untuk %(n)s %(s)s" % {'n': nama, 's': skor})
Ada's juga baru-gaya string format, yang mungkin sedikit lebih mudah untuk membaca:
print("Total skor untuk {} adalah {}".format(nama, nilai))
print("Total skor untuk {0} adalah {1}".format(nama, nilai))
print("Total skor untuk {n} adalah {s}".format(n=nama, s=skor))
print("Total skor untuk " + str(nama) + " adalah " + str(skor))
Yang paling jelas dua, dalam pendapat saya:
print("Total skor untuk", nama, "adalah", skor)
Jika anda don't ingin ruang yang akan dimasukkan secara otomatis oleh cetak
dalam contoh di atas, mengubah sep
parameter:
print("Total skor untuk ", nama, " adalah ", skor, sep='')
Jika anda're menggunakan Python 2, won't dapat menggunakan dua terakhir karena cetak
isn't fungsi pada Python versi 2. Anda dapat, namun, impor ini perilaku dari __masa__
:
dari masa impor print_function
f
-string format di Python 3.6:cetak(f'Total skor untuk {nama} adalah {skor}')
Ada banyak cara untuk mencetak yang.
Let's memiliki tampilan dengan contoh lain.
a = 10
b = 20
c = a + b
#Normal string concatenation
print("sum of", a , "and" , b , "is" , c)
#convert variable into str
print("sum of " + str(a) + " and " + str(b) + " is " + str(c))
# if you want to print in tuple way
print("Sum of %s and %s is %s: " %(a,b,c))
#New style string formatting
print("sum of {} and {} is {}".format(a,b,c))
#in case you want to use repr()
print("sum of " + repr(a) + " and " + repr(b) + " is " + repr(c))
EDIT :
#New f-string formatting from Python 3.6:
print(f'Sum of {a} and {b} is {c}')
Penggunaan: .format()
:
print("Total score for {0} is {1}".format(name, score))
Atau:
// Recommended, more readable code
print("Total score for {n} is {s}".format(n=name, s=score))
Atau:
print("Total score for" + name + " is " + score)
Atau:
`print("Total score for %s is %d" % (name, score))`
Di Python 3.6, f-string
adalah jauh lebih bersih.
Dalam versi sebelumnya:
print("Total score for %s is %s. " % (name, score))
Di Python 3.6:
print(f'Total score for {name} is {score}.')
akan lakukan.
Hal ini lebih efisien dan elegan.
Tetap sederhana, saya pribadi suka string concatenation:
print("Total score for " + name + " is " + score)
Ia bekerja dengan kedua Python 2.7 3.X.
CATATAN: Jika skor adalah int, maka, anda harus mengubahnya ke str:
print("Total score for " + name + " is " + str(score))
Ikuti saja ini
idiot_type = "the biggest idiot"
year = 22
print("I have been {} for {} years ".format(idiot_type, years))
ATAU
idiot_type = "the biggest idiot"
year = 22
print("I have been %s for %s years."% (idiot_type, year))
Dan melupakan semua yang lain, lain otak won't dapat memetakan semua format.
Jika nilai
adalah sebuah nomor, kemudian
print("Total score for %s is %d" % (name, score))
Jika nilai string, maka
print("Total score for %s is %s" % (name, score))
Jika skor adalah angka, maka itu's %d
, jika itu's sebuah string, maka's %s
, jika skor yang mengapung, maka's %f