Bagaimana cara memformat angka mengambang ke lebar tetap dengan persyaratan berikut:
- Leading nol jika n <1
- Tambahkan trailing desimal zero (s) untuk mengisi lebar tetap
- Potong digit desimal melewati lebar tetap
- Sejajarkan semua poin desimal
Sebagai contoh:
% formatter something like '{:06}'
numbers = [23.23, 0.123334987, 1, 4.223, 9887.2]
for number in numbers:
print formatter.format(number)
Outputnya akan seperti
23.2300
0.1233
1.0000
4.2230
9887.2000
python
string
numbers
number-formatting
hobbes3
sumber
sumber
10.4
berarti lebar 10 karakter dan ketelitian 4 tempat desimal.10
adalah lebar bidang minimum, yaitu panjang minimum dari string yang dicetak. Angka-angka secara default disejajarkan dan diisi dengan spasi - lihat dokumentasi untuk detail lebih lanjut.("%0.4f" % x).rjust(10)
"%10.4f" % x
. Di Python 2.6, Anda juga bisa menggunakan"{0:10.4f}".format(x)
.Sudah beberapa tahun sejak ini dijawab, tetapi pada Python 3.6 ( PEP498 ) Anda bisa menggunakan yang baru
f-strings
:Cetakan:
sumber
Dalam python3 berikut ini berfungsi:
sumber
%
format adalah metode format tertua. Untuk beberapa alasan menggunakanstr.format
atauf-strings
lebih disukai daripada%
. Sebelumnya saat itu sajastr.format
, orang memiliki beberapa alasan tetapif-strings
memperbaiki lubang itu. format dokumen mini-bahasa , contoh str.format dari docs dan contoh literal f-string dalam dokumenLihat sintaks string format Python 3.x :
sumber
Anda juga dapat meninggalkan pad dengan nol. Misalnya, jika Anda ingin
number
memiliki panjang 9 karakter, kosongkan dengan nol gunakan:print('{:09.3f}'.format(number))
Jadi, jika
number = 4.656
, outputnya adalah:00004.656
Sebagai contoh, hasilnya akan seperti ini:
cetakan:
Salah satu contoh di mana ini mungkin berguna adalah ketika Anda ingin mendaftar nama file dengan benar dalam urutan abjad. Saya perhatikan di beberapa sistem linux, jumlahnya adalah: 1,10,11, .. 2,20,21, ...
Jadi, jika Anda ingin menerapkan urutan numerik yang diperlukan dalam nama file, Anda harus meninggalkan pad dengan jumlah nol yang sesuai.
sumber
Dalam Python 3.
6.1f
berarti setelah titik 1 digit menunjukkan jika Anda mencetak 2 digit setelah titik-titik Anda harus hanya%6.2f
seperti yang%6.3f
3 digit dicetak setelah titik.sumber
Saya membutuhkan sesuatu yang mirip untuk array. Itu membantu saya
sumber