Formatting Strings with f-strings

Formatlangan string literal yoki f-stringlar — bu stringlar boshida "f" harfi bo‘lgan va ichida jingalak qavslar `{}` bo‘lgan stringlardir.

f-string yordamida stringlarni formatlash

Formatlangan string literal yoki f-stringlar — bu stringlar boshida "f" harfi bo‘lgan va ichida jingalak qavslar {} bo‘lgan stringlardir. Bu qavslar ichiga joylashtirilgan ifodalar orqali siz maxsus jarayonlar haqida f-string'ga ko‘rsatmalar berasiz, masalan, stringlarni tekislash, float aniqligi, va hokazo.

f-string Python 3.6 versiyasida qo‘shilgan. U haqida batafsil ma'lumotni PEP 498 hujjatidan o‘qishingiz mumkin: PEP 498

Keling, oddiy misolni ko‘rib chiqamiz:

name = 'Mike'
age = 20
f'Salom {name}. Siz {age} yoshdasiz'
# Natija: Salom Mike. Siz 20 yoshdasiz

Bu yerda siz f-string yaratishingiz uchun string boshiga “f” harfini qo‘shdingiz. string ichida esa, jingalak qavslar {} yordamida o‘zgaruvchilarni kiritdingiz.

Ammo jingalak qavslar ichida hech narsa bo‘lmasligi kerak. Agar siz bo‘sh jingalak qavslar bilan f-string yaratmoqchi bo‘lsangiz, xatolik yuzaga keladi:

f'Salom `{}`. Siz `{}` yoshdasiz'
# Xato: SyntaxError: f-string: empty expression not allowed

f-string bilan siz %s yoki .format() qilolmagan narsalarni bajarishingiz mumkin. Sababi, f-string'lar dastur bajarilayotganda baholanadi va siz ularga istalgan haqiqiy Python ifodasini joylashtirishingiz mumkin.

Misol uchun, age o‘zgaruvchisining qiymatini oshirish mumkin:

age = 20
f'{age+2}'
# Natija: 22

Yoki metod yoki funksiyani chaqirish mumkin:

name = 'Mike'
f'{name.lower()}'
# Natija: mike

Shuningdek, f-string ichida to‘g‘ridan-to‘g‘ri lug‘at qiymatlariga murojaat qilishingiz mumkin:

sample_dict = {'name': 'Tom', 'age': 40}
f'Salom {sample_dict["name"]}. Siz {sample_dict["age"]} yoshdasiz'
# Natija: Salom Tom. Siz 40 yoshdasiz

Lekin, f-string ifodalarida qiya chiziq () ishlatish taqiqlangan:

print(f'Mening ismim {name\n}')
# Xato: SyntaxError: f-string expression part cannot include a backslash

Ammo, qiya chiziqni f-string ifodasi tashqarisida ishlatishingiz mumkin:

name = 'Mike'
print(f'Mening ismim {name}\n')
# Natija: Mening ismim Mike

Bundan tashqari, f-string ichida izoh (#) kiritish ham mumkin emas:

f'Mening ismim {name # shaxsning ismi}'
# Xato: SyntaxError: f-string expression part cannot include '#'

Python 3.8 versiyasida f-string'lar = belgisini qo‘llab-quvvatlay boshladi, bu esa ifoda matnini tenglik belgisi va baholangan ifodaning qiymati bilan kengaytiradi. Bu biroz murakkab ko‘rinadi, shuning uchun misolga qaraymiz:

username = 'jdoe'
f'Sizning {username=}'
# Natija: Sizning username='jdoe'

Bu misolda ifoda ichidagi username= matni natijaga qo‘shiladi va undan so‘ng usernamening haqiqiy qiymati qo‘shiladi.

f-string'lar juda kuchli va juda foydali. Agar ularni oqilona ishlatsangiz, kodingizni ancha soddalashtiradi. Ularga albatta imkoniyat berishingiz kerak.

Keling, stringlar bilan yana nimalar qilish mumkinligini ko‘rib chiqaylik!

Ushbu sahifada

Xato haqida xabar berish