Skip to content

Satrni Formatlash

F-String

F-String Python 3.6 da taqdim etilgan va endi satrlarni formatlashning afzal usuli hisoblanadi.

Python 3.6 dan oldin biz format() metodidan foydalanardik.

F-Strings

F-String sizga satrning tanlangan qismlarini formatlash imkonini beradi.

Satrni f-string sifatida belgilash uchun satr literalidan oldin f qo'yish kifoya:

Misol

F-string yaratish:

python
txt = f"Narx 49 dollar"
print(txt)

O'rinbosarlar va Modifikatorlar

F-stringda qiymatlarni formatlash uchun {} o'rinbosarlardan foydalaning. O'rinbosar o'zgaruvchilar, operatsiyalar, funksiyalar va qiymatni formatlash uchun modifikatorlarni o'z ichiga olishi mumkin.

Misol

price o'zgaruvchisi uchun o'rinbosar qo'shing:

python
price = 59
txt = f"Narx {price} dollar"
print(txt)

O'rinbosar qiymatni formatlash uchun modifikatorni ham o'z ichiga olishi mumkin.

Modifikator ikki nuqtadan keyin :, masalan .2f, qonuniy formatlash turi bilan qo'shiladi, bu 2 o'nlik kasr bilan sobit nuqtali sonni anglatadi:

Misol

Narxni 2 o'nlik bilan ko'rsatish:

python
price = 59
txt = f"Narx {price:.2f} dollar"
print(txt)

Siz qiymatni o'zgaruvchida saqlamasdan to'g'ridan-to'g'ri formatlashingiz ham mumkin:

Misol

95 qiymatini 2 o'nlik bilan ko'rsatish:

python
txt = f"Narx {95:.2f} dollar"
print(txt)

F-Stringsda Operatsiyalarni Bajarish

O'rinbosarlar ichida Python operatsiyalarini bajarishingiz mumkin.

Matematik operatsiyalarni amalga oshirishingiz mumkin:

Misol

O'rinbosarda matematik operatsiyani bajarib, natijani qaytarish:

python
txt = f"Narx {20 * 59} dollar"
print(txt)

O'zgaruvchilar ustida matematik operatsiyalarni bajarishingiz mumkin:

Misol

Narxni ko'rsatishdan oldin soliqni qo'shing:

python
price = 59
tax = 0.25
txt = f"Narx {price + (price * tax)} dollar"
print(txt)

O'rinbosarlar ichida if...else iboralarini bajarishingiz mumkin:

Misol

Agar narx 50 dan yuqori bo'lsa "Qimmat", aks holda "Arzon" qaytaring:

python
price = 49
txt = f"Bu juda {'Qimmat' if price > 50 else 'Arzon'}"

print(txt)

F-Stringsda Funksiyalarni Bajarish

O'rinbosar ichida funksiyalarni bajarishingiz mumkin:

Misol

upper() satr metodidan foydalanib, qiymatni katta harflarga aylantirish:

python
fruit = "olmalar"
txt = f"Men {fruit.upper()} ni yaxshi ko'raman"
print(txt)

Funksiya Pythonning ichki metodlari bo'lishi shart emas, siz o'zingizning funksiyalaringizni yaratib, ulardan foydalanishingiz mumkin:

Misol

Futni metrga aylantiruvchi funksiya yarating:

python
def mening_aylantiruvchim(x):
    return x * 0.3048

txt = f"Samolet {mening_aylantiruvchim(30000)} metr balandlikda uchmoqda"
print(txt)

Ko'proq Modifikatorlar

Bu bo'lim boshida .2f modifikatoridan foydalanib, raqamni 2 o'nlik kasr bilan sobit nuqtali songa qanday formatlashni tushuntirdik.

Qiymatlarni formatlash uchun ishlatilishi mumkin bo'lgan boshqa modifikatorlar ham mavjud:

Misol

Minglik ajratgich sifatida verguldan foydalanish:

python
price = 59000
txt = f"Narx {price:,} dollar"
print(txt)

Quyida barcha formatlash turlari ro'yxati keltirilgan:

Formatlash TuriTavsif
:<Natijani chapga tekislaydi (mavjud bo'shliq ichida)
:>Natijani o'ngga tekislaydi (mavjud bo'shliq ichida)
:^Natijani markazga tekislaydi (mavjud bo'shliq ichida)
:=Belgini eng chap pozitsiyaga joylashtiradi
:+Natija ijobiy yoki salbiy ekanligini ko'rsatish uchun plus belgisi ishlatadi
:-Faqat salbiy qiymatlar uchun minus belgisi ishlatadi
: Ijobiy raqamlar oldidan qo'shimcha bo'sh joy qo'shadi (salbiy raqamlar oldidan minus belgisi)
:,Minglik ajratgich sifatida vergul ishlatadi
:_Minglik ajratgich sifatida pastki chiziq ishlatadi
:bIkkilik format
:cQiymatni mos keluvchi Unicode belgisiga aylantiradi
:dO'nlik format
:eIlmiy format, kichik harfli e bilan
:EIlmiy format, katta harfli E bilan
:fSobit nuqtali son formati
:FSobit nuqtali son formati, katta harfli (inf va nan INF va NAN sifatida ko'rsatiladi)
:gUmumiy format
:GUmumiy format (ilmiy notatsiyalar uchun katta E ishlatadi)
:oSakkizlik format
:xO'n oltinlik format, kichik harfli
:XO'n oltinlik format, katta harfli
:nRaqam formati
:%Foiz formati

Satrni format() Bilan Formatlash

Python 3.6 dan oldin satrlarni formatlash uchun format() metodidan foydalanardik.

format() metodi hali ham ishlatilishi mumkin, lekin f-stringlar tezroq va satrlarni formatlashning afzal usuli hisoblanadi.

Keyingi misollar ushbu sahifada format() metodi bilan satrlarni qanday formatlashni ko'rsatadi.

format() metodi ham o'rinbosar sifatida jingalak qavslar {}, lekin sintaksis biroz farq qiladi:

Misol

Narxni ko'rsatmoqchi bo'lgan joyga o'rinbosar qo'shing:

python
price = 49
txt = "Narx {} dollar"
print(txt.format(price))

Jingalak qavslar ichida qiymatni qanday aylantirishni belgilash uchun parametrlarni qo'shishingiz mumkin:

Misol

Narxni ikki o'nlik bilan ko'rsatish uchun formatlang:

python
txt = "Narx {:.2f} dollar"
print(txt.format(price))

Bir Necha Qiymat

Agar ko'proq qiymatlardan foydalanmoqchi bo'lsangiz, format() metodiga ko'proq qiymatlarni qo'shing:

python
print(txt.format(price, itemno, count))

Va ko'proq o'rinbosar qo'shing:

Misol

python
quantity = 3
itemno = 567
price = 49
myorder = "Men {0} dona {1} raqamli mahsulotni {2:.2f} dollarga xohlayman."
print(myorder.format(quantity, itemno, price))

Indeks Raqamlari

Qiymatlar to'g'ri o'rinbosarlarga joylashtirilishini ta'minlash uchun indeks raqamlaridan (jingalak qavslar ichidagi raqam {0}) foydalanishingiz mumkin:

Misol

python
quantity = 3
itemno = 567
price = 49
myorder = "Men {0} dona {1} raqamli mahsulotni {2:.2f} dollarga xohlayman."
print(myorder.format(quantity, itemno, price))

Shuningdek, agar bir xil qiymatga bir necha marta murojaat qilmoqchi bo'lsangiz, indeks raqamidan foydalaning:

Misol

python
age = 36
name = "John"
txt = "Uning ismi {1}. {1} {0} yoshda."
print(txt.format(age, name))

Nomlangan Indekslar

Jingalak qavslar ichida nom kiritib ({carname}), nomlangan indekslardan ham foydalanishingiz mumkin, lekin keyin parametr qiymatlarini uzatganingizda nomlardan foydalanish kerak (txt.format(carname = "Ford")):

Misol

python
myorder = "Menda {carname} bor, bu {model}."
print(myorder.format(carname="Ford", model="Mustang"))