Formatting Strings Using `%s` (printf-style)

Bu Python'da satrlarni formatlashning eng eski usuli.

%s yordamida satrlarni formatlash (printf-stil)

% metodidan foydalanish — bu Python'da satrlarni formatlashning eng eski usuli. Bu usulni ba’zida “printf-stil satr formatlash” deb ham atashadi. Agar siz ilgari C yoki C++ dan foydalangan bo‘lsangiz, ushbu turdagi satr o‘rnini bosishga allaqachon tanish bo‘lishingiz mumkin. Qisqacha aytadigan bo‘lsak, siz bu yerda % dan qanday foydalanishni o‘rganasiz.

Eslatma

Ushbu formatlash turi biroz noqulay bo‘lishi mumkin va ko‘pincha Python'da tuplar va lug‘atlarni noto‘g‘ri aks ettirishga olib kelishi mumkin. Bunday holatlarda qolgan ikki usuldan foydalanish tavsiya etiladi.

% belgisi bilan foydalanishning eng keng tarqalgan usuli bu %s ni qo‘llashdir, ya'ni Python ob’ektini satrga aylantirish uchun str() funksiyasidan foydalaniladi.

Mana bir misol:

name = 'Mike'
print('Mening ismim %s' % name)
# Natija: Mening ismim Mike

Bu kodda siz name o‘zgaruvchisini maxsus %s sintaksisi yordamida boshqa satr ichiga joylashtirasiz. Buni ishlatish uchun satrdan tashqarida % belgisi bilan, keyin esa joylashtirmoqchi bo‘lgan satr yoki o‘zgaruvchi bo‘lishi kerak.

Mana yana bir misol, unda siz sonni satr ichiga kiritishingiz va uning avtomatik tarzda aylantirilishini ko‘rishingiz mumkin:

age = 18
print('Davom etish uchun kamida %s yoshda bo‘lishingiz kerak' % age)
# Natija: Davom etish uchun kamida 18 yoshda bo‘lishingiz kerak

Bu usul ob’ektni aylantirishda, uning turi noma’lum bo‘lgan holatlarda ayniqsa foydali.

Siz bir nechta o‘zgaruvchi bilan ham satrni formatlashingiz mumkin. Aslida, buni ikki xil usulda qilish mumkin. Mana birinchi usul:

name = 'Mike'
age = 18
print('Salom %s. Davom etish uchun kamida %i yoshda bo‘lishingiz kerak!' % (name, age))
# Natija: Salom Mike. Davom etish uchun kamida 18 yoshda bo‘lishingiz kerak!

Bu misolda siz ikkita o‘zgaruvchi yaratib, %s va %i dan foydalanasiz. %i integer (butun son) bo‘lishini bildiradi. Bir nechta elementlarni kiritish uchun % belgisi ortidan tuplani (tuple) ishlatasiz.

Buni yanada aniqroq qilish uchun quyidagi usuldan foydalanishingiz mumkin:

print('Salom %(first_name)s. Davom etish uchun kamida %(age)i yoshda bo‘lishingiz kerak!'
% {'first_name': name, 'age': age})
# Natija: Salom Mike. Davom etish uchun kamida 18 yoshda bo‘lishingiz kerak!

Agar % belgisining o‘ng tomonida lug‘at (dictionary) bo‘lsa, satr ichidagi qavs ichidagi formatlar lug‘atning kalitlariga (keys) mos kelishi kerak. Boshqacha aytganda, agar satrda %(name)s ko‘rsangiz, unda % dan keyin keladigan lug‘atda name kaliti bo‘lishi kerak.

Agar zarur bo‘lgan kalitlardan birini kiritmasangiz, quyidagi xatolikni olasiz:

print('Salom %(first_name)s. Davom etish uchun kamida %(age)i yoshda bo‘lishingiz kerak!'
% {'age': age})
# Xato: KeyError: 'first_name'

Printf-stil satr formatlash haqida qo‘shimcha ma’lumot olish uchun quyidagi manzilga qarang: Python hujjatlari

Endi .format() metodidan foydalanishga o‘tamiz.

Ushbu sahifada

Xato haqida xabar berish