Saya melakukan ini dengan Python 2:
"(%d goals, $%d)" % (self.goals, self.penalties)
Apa versi Python 3 ini?
Saya mencoba mencari contoh secara online tetapi saya terus mendapatkan versi Python 2.
python
python-3.x
string
JoseBazBaz
sumber
sumber
Jawaban:
Berikut adalah dokumen tentang sintaks format "baru". Contohnya adalah:
Jika keduanya
goals
danpenalties
adalah bilangan bulat (format defaultnya ok), ini bisa disingkat menjadi:Dan karena parameternya adalah bidang
self
, ada juga cara untuk melakukannya menggunakan satu argumen dua kali (seperti yang dicatat @Burhan Khalid di komentar):Menjelaskan:
{}
berarti hanya argumen posisi berikutnya, dengan format default;{0}
Berarti argumen dengan indeks0
, dengan format default;{:d}
adalah argumen posisi berikutnya, dengan format bilangan bulat desimal;{0:d}
adalah argumen dengan indeks0
, dengan format bilangan bulat desimal.Ada banyak hal lain yang dapat Anda lakukan saat memilih argumen (menggunakan argumen bernama alih-alih posisi, mengakses bidang, dll) dan banyak opsi format juga (mengisi nomor, menggunakan ribuan pemisah, menunjukkan tanda atau tidak, dll). Beberapa contoh lain:
Catatan: Seperti yang ditunjukkan orang lain, format baru tidak menggantikan yang sebelumnya, keduanya tersedia di Python 3 dan versi Python 2 yang lebih baru juga. Beberapa orang mungkin mengatakan itu masalah preferensi, tetapi IMHO yang lebih baru jauh lebih ekspresif daripada yang lebih lama, dan harus digunakan setiap kali menulis kode baru (kecuali itu menargetkan lingkungan yang lebih lama, tentu saja).
sumber
"({0.goals} goals, ${0.penalties})".format(self)
"conversion rate: {:.2%}".format(self.goals / self.shots)
? Bekerja dengan baik untuk saya karena ... (Python 3.4) Perhatikan bahwa tidak adaf
di dalamnya, saya meminta untuk memformat sebagai persentase, bukan sebagai angka floating point."{:.2f}%".format(float_num)
bekerja dengan baik untuk keduanya.$
tidak memiliki arti khusus di sini, baik dalam sintaks format lama maupun dalam yang baru, sehingga harus ada dalam string yang dihasilkan, tidak berubah.Python 3.6 sekarang mendukung interpolasi string literal singkatan dengan PEP 498 . Untuk kasus penggunaan Anda, sintaks baru adalah:
Ini mirip dengan
.format
standar sebelumnya , tetapi memungkinkan seseorang dengan mudah melakukan hal - hal seperti :sumber
Baris itu berfungsi sebagaimana adanya di Python 3.
sumber
Saya suka pendekatan ini
Perhatikan d dan s yang ditambahkan ke masing-masing tanda kurung.
keluarannya adalah:
sumber