Python string formatlash
F-String Python 3.6 da joriy qilingan va hozirda stringlarni formatlashning afzal usuli hisoblanadi.
Python 3.6 dan oldin bizformat()usulidan foydalanishimiz kerak edi.
F-torlari
F-string stringning tanlangan qismlarini formatlash imkonini beradi.
Stringni f-string sifatida belgilash uchun string literalining oldiga f qo‘yish kifoya, masalan:
To‘ldiruvchilar va modifikatorlar
F-stringdagi qiymatlarni formatlash uchun {} joy egalarini qo‘shing; joy egasi qiymatni formatlash uchun o‘zgaruvchilar, amallar, funksiyalar va modifikatorlarni o‘z ichiga olishi mumkin.
Misol
priceo‘zgaruvchisi uchun joy ushlagich qo‘shing:
price = 59
txt = f"The price is {price} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
To‘ldiruvchi qiymatni formatlash uchun modifikatorni ham o‘z ichiga olishi mumkin.
Modifikator ikki nuqta qo‘shish orqali kiritiladi : keyin qonuniy formatlash turi, masalan,.2f, bu 2 o‘nlikdan iborat sobit nuqta raqamini bildiradi :
Misol
Narxni 2 kasr bilan ko‘rsating:
price = 59
txt = f"The price is {price:.2f} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
Bundan tashqari, qiymatni o‘zgaruvchida saqlamasdan to‘g‘ridan-to‘g‘ri formatlashingiz mumkin:
Misol
95 qiymatini 2 kasr bilan ko‘rsating:
txt = f"The price is {95:.2f} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
F-stringlarda operatsiyalarni bajarish
Python operatsiyalarini to‘ldiruvchilar ichida bajarishingiz mumkin.
Siz matematik operatsiyalarni bajarishingiz mumkin:
Misol
To‘ldiruvchida matematik amalni bajaring va natijani qaytaring:
txt = f"The price is {20 * 59} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
O‘zgaruvchilar ustida matematik amallarni bajarishingiz mumkin:
Misol
Narxni ko‘rsatishdan oldin soliqlarni qo‘shing:
price = 59
tax = 0.25
txt = f"The price is {price + (price * tax)} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
To‘ldiruvchilar ichida if...else iboralarini bajarishingiz mumkin:
Misol
Agar narx 50 dan yuqori bo‘lsa, "Qimmat" ni qaytaring, aks holda "Arzon" ni qaytaring:
price = 49
txt = f"It is very {'Expensive' if price>50 else 'Cheap'}"
print(txt)
O‘zingiz sinab ko‘ring »
F-stringlarda funksiyalarni bajarish
Siz to‘ldiruvchi ichidagi funksiyalarni bajarishingiz mumkin:
Misol
Qiymatni katta harflarga aylantirish uchun upper() string usulidan foydalaning:
fruit = "apples"
txt = f"I love {fruit.upper()}"
print(txt)
O‘zingiz sinab ko‘ring »
Funksiya o‘rnatilgan Python usuli bo‘lishi shart emas, siz o‘zingizning funksiyalaringizni yaratishingiz va ulardan foydalanishingiz mumkin:
Misol
Oyoqlarni metrga aylantiruvchi funksiya yarating:
def myconverter(x):
return x * 0.3048
txt = f"The plane is flying at a {myconverter(30000)} meter altitude"
print(txt)
O‘zingiz sinab ko‘ring »
Ko‘proq modifikatorlar
Ushbu bobning boshida biz .2f modifikatoridan raqamni 2 kasrli sobit nuqtali raqamga formatlash uchun qanday foydalanishni tushuntirdik.
Qiymatlarni formatlash uchun ishlatilishi mumkin bo‘lgan bir qancha boshqa modifikatorlar mavjud:
Misol
Ming ajratuvchi sifatida verguldan foydalaning:
price = 59000
txt = f"The price is {price:,} dollars"
print(txt)
O‘zingiz sinab ko‘ring »
Bu yerda barcha formatlash turlarining ro‘yxati.
| Formatting Types | ||
|---|---|---|
:< |
Try it | Natijani chapga tekislaydi (mavjud joy doirasida) |
:> |
Try it | Natijani o‘ngga tekislaydi (mavjud joy doirasida) |
:^ |
Try it | Natijani markazga tekislaydi (mavjud joy doirasida) |
:= |
Try it | Belgini eng chap tomonga joylashtiradi |
:+ |
Try it | Natija ijobiy yoki salbiy ekanligini ko‘rsatish uchun ortiqcha belgisidan foydalaning |
:- |
Try it | Minus belgisidan faqat manfiy qiymatlar uchun foydalanish |
: |
Try it | Musbat sonlar oldidan qo‘shimcha bo‘sh joy qo‘yish (manfiy sonlar oldidan esa minus belgisi) uchun bo‘sh joydan foydalanish |
:, |
Try it | Minglik ajratuvchi sifatida verguldan foydalanish |
:_ |
Try it | Minglik ajratuvchi sifatida pastki chiziqdan foydalanish |
:b |
Try it | Binary format |
:c |
Qiymatni mos keladigan Unicode belgisiga aylantiradi | |
:d |
Try it | Decimal format |
:e |
Try it | Ilmiy format, kichik e harfi bilan |
:E |
Try it | Ilmiy format, katta E harfi bilan |
:f |
Try it | Fix point number format |
:F |
Try it | Qat’iy nuqtali son formati, katta harfli ko‘rinishda (inf va nan ni INF va NAN sifatida ko‘rsatadi) |
:g |
General format | |
:G |
Umumiy format (ilmiy yozuvlar uchun katta E harfidan foydalanadi) | |
:o |
Try it | Octal format |
:x |
Try it | Hex format, lower case |
:X |
Try it | Hex format, upper case |
:n |
Number format | |
:% |
Try it | Percentage format |
String formati()
Python 3.6 dan oldin biz stringlarni formatlash uchunformat()usulidan foydalanganmiz.
format() metodidan hali ham foydalanish mumkin, lekin f-stringlar tezroq ishlaydi va stringlarni formatlashning afzal usuli hisoblanadi.
Ushbu sahifadagi keyingi misollarformat()usuli bilan stringlarni qanday formatlashni ko‘rsatadi.
format()usuli, shuningdek,{} o‘rinbosarlari sifatida jingalak qavslardan foydalanadi, ammo sintaksis biroz boshqacha:
Misol
Narxni ko‘rsatmoqchi bo‘lgan joyni qo‘shing:
price = 49
txt = "The price is {} dollars"
print(txt.format(price))
O‘zingiz sinab ko‘ring »
Qiymatni qanday aylantirishni belgilash uchun jingalak qavslar ichiga parametrlarni qo‘shishingiz mumkin:
Misol
Ikki kasrli raqam sifatida ko‘rsatiladigan narxni formatlang:
txt = "The price is {:.2f} dollars"
O‘zingiz sinab ko‘ring »
String format() ma’lumotnomamizdagi barcha formatlash turlarini tekshiring.
Bir nechta qiymatlar
Agar siz ko‘proq qiymatlardan foydalanmoqchi bo‘lsangiz,format()usuliga qo‘shimcha qiymatlarni qo‘shing:
print(txt.format(price, itemno, count))
Va yana to‘ldiruvchilarni qo‘shing:
Misol
quantity = 3
itemno = 567
price = 49
myorder = "I want {} pieces of item number {} for {:.2f} dollars."
print(myorder.format(quantity, itemno, price))
O‘zingiz sinab ko‘ring »
Indeks raqamlari
Qiymatlar to‘g‘ri o‘rin tutgichlarga joylashtirilganligiga ishonch hosil qilish uchun indeks raqamlaridan (jingalak qavslar ichidagi raqam {0}) foydalanishingiz mumkin:
Misol
quantity = 3
itemno = 567
price = 49
myorder = "I want {0} pieces of item number {1} for {2:.2f} dollars."
print(myorder.format(quantity, itemno, price))
O‘zingiz sinab ko‘ring »
Bundan tashqari, agar siz bir xil qiymatga bir necha marta murojaat qilmoqchi bo‘lsangiz, indeks raqamidan foydalaning:
Misol
age = 36
name = "John"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))
O‘zingiz sinab ko‘ring »
Nomlangan indekslar
Siz {carname} jingalak qavslar ichiga nom kiritish orqali nomlangan indekslardan ham foydalanishingiz mumkin, lekin keyin txt.format(carname = "Ford") parametr qiymatlarini o‘tkazishda nomlardan foydalanishingiz kerak:
Misol
myorder = "I have a {carname}, it is a {model}."
print(myorder.format(carname = "Ford", model = "Mustang"))
O‘zingiz sinab ko‘ring »
W3Schools Pathfinder
Yutuqlaringizni kuzating – bu bepul!
