Dalam python katakanlah Anda punya
s = "string"
i = 0
print s+i
akan memberi Anda kesalahan sehingga Anda menulis
print s+str(i)
agar tidak mendapatkan kesalahan.
Saya pikir ini adalah cara yang cukup canggung untuk menangani penggabungan int dan string. Bahkan Java tidak membutuhkan casting eksplisit ke String untuk melakukan penggabungan semacam ini. Apakah ada cara yang lebih baik untuk melakukan penggabungan semacam ini yaitu tanpa casting eksplisit dengan Python?
python
concatenation
string-concatenation
specialscope
sumber
sumber
"1" + 1
,2
atau"11"
dan mengapa?s+str(i)
, dan Anda benar!Jawaban:
Pemformatan string modern:
"{} and {}".format("string", 1)
sumber
str.format
Metode ini diperkenalkan di Python 3.0, dan backported untuk Python 2.6 dan kemudian (lihat stackoverflow.com/a/792745/4648642 )Tanpa pemformatan string:
>> print 'Foo',0 Foo 0
sumber
print()
fungsi v3 dan menyetel beberapa parameternya.Pemformatan string, menggunakan
.format()
metode gaya baru (dengan default .format () menyediakan):'{}{}'.format(s, i)
Atau yang lebih tua, tapi "masih bertahan",
%
-memformat:'%s%d' %(s, i)
Pada kedua contoh di atas, tidak ada spasi di antara dua item yang digabungkan. Jika diperlukan spasi, itu dapat dengan mudah ditambahkan dalam format string.
Ini memberikan banyak kontrol dan fleksibilitas tentang cara menggabungkan item, spasi di antara item, dll. Untuk detail tentang spesifikasi format, lihat ini .
sumber
Python adalah bahasa yang menarik karena biasanya ada satu (atau dua) cara yang "jelas" untuk menyelesaikan tugas apa pun, namun fleksibilitas tetap ada.
s = "string" i = 0 print (s + repr(i))
Potongan kode di atas ditulis dalam sintaks Python3 tetapi tanda kurung setelah cetak selalu diperbolehkan (opsional) sampai versi 3 menjadikannya wajib.
Semoga ini membantu.
Caitlin
sumber
format () metode dapat digunakan untuk menggabungkan string dan integer
print(s+"{}".format(i))
sumber
di python 3.6 dan yang lebih baru, Anda dapat memformatnya seperti ini:
new_string = f'{s} {i}' print(new_string)
atau hanya:
print(f'{s} {i}')
sumber
jika Anda hanya ingin mencetak, Anda dapat melakukan ini:
sumber
Anggaplah Anda ingin menggabungkan string dan integer dalam situasi seperti ini:
for i in range(1,11): string="string"+i
dan Anda mendapatkan kesalahan tipe atau penggabungan
Cara terbaik untuk melakukannya adalah dengan melakukan sesuatu seperti ini:
for i in range(1,11): print("string",i)
Ini akan memberi Anda hasil gabungan seperti string 1, string 2, string 3 ... dll
sumber