Menampilkan nomor dengan awalan nol
Mengingat:
a = 1
b = 10
c = 100
Bagaimana cara menampilkan nol untuk semua nomor dengan kurang dari dua digit?
Artinya,
01
10
100
809
15
Mengingat:
a = 1
b = 10
c = 100
Bagaimana cara menampilkan nol untuk semua nomor dengan kurang dari dua digit?
Artinya,
01
10
100
Di Python versi 2 yang dapat anda lakukan:
Pada dasarnya % seperti
printf
atausprintf
.Untuk Python 3.+ perilaku yang sama dapat dicapai dengan:
Untuk Python 3.6+ perilaku yang sama dapat dicapai dengan f-string:
Anda dapat menggunakan
str.zfill
:cetakan:
Di Python 2.6+ dan 3.0+, anda akan menggunakan
format()
string metode:atau menggunakan built-in (untuk nomor tunggal):
Lihat PEP-3101 dokumentasi untuk fungsi format.
cetakan:
Atau ini:
cetak '{0:02d}'.format(1)
Di Python >= 3.6, anda dapat melakukan ini dengan ringkas dengan yang baru f-string yang diperkenalkan dengan menggunakan:
yang mencetak variabel dengan nama
val
denganisi
nilai0
dan alebar
dari2
.Untuk anda contoh anda dapat melakukan hal ini baik dalam loop:
yang mencetak:
Untuk informasi lebih lanjut tentang f-string, lihatlah PEP 498 di mana mereka diperkenalkan.
hasil:
Baca informasi lebih lanjut tentang string pemformatan menggunakan % dalam dokumentasi.
Yang Pythonic cara untuk melakukan ini:
Dengan cara ini, asli string yang dikembalikan tidak berubah jika panjangnya lebih besar dari string_width. Contoh:
Hasil:
Atau solusi lain.
Menggunakan format string - http://docs.python.org/lib/typesseq-strings.html
Misalnya:
Ini adalah bagaimana saya melakukannya:
Pada dasarnya zfill mengambil jumlah angka nol yang ingin anda tambahkan, sehingga's mudah untuk mengambil jumlah terbesar, mengubahnya menjadi sebuah string dan mendapatkan panjang, seperti ini:
Gunakan:
Atau dengan
matematika
module:df['Col1']=df['Col1'].menerapkan(lambda x: '{0:0>5}'.format(x)) (5 adalah jumlah total digit)
Saya menggunakan link ini: http://www.datasciencemadesimple.com/add-leading-preceding-zeros-python/
Jika berurusan dengan angka-angka yang salah satu atau dua digit:
'0'+str(number)[-2:]
atau'0{0}'.format(jumlah)[-2:]