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:
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:
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:
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:
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:
txt = f"Narx {20 * 59} dollar"
print(txt)O'zgaruvchilar ustida matematik operatsiyalarni bajarishingiz mumkin:
Misol
Narxni ko'rsatishdan oldin soliqni qo'shing:
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:
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:
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:
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:
price = 59000
txt = f"Narx {price:,} dollar"
print(txt)Quyida barcha formatlash turlari ro'yxati keltirilgan:
| Formatlash Turi | Tavsif |
|---|---|
:< | 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 |
:b | Ikkilik format |
:c | Qiymatni mos keluvchi Unicode belgisiga aylantiradi |
:d | O'nlik format |
:e | Ilmiy format, kichik harfli e bilan |
:E | Ilmiy format, katta harfli E bilan |
:f | Sobit nuqtali son formati |
:F | Sobit nuqtali son formati, katta harfli (inf va nan INF va NAN sifatida ko'rsatiladi) |
:g | Umumiy format |
:G | Umumiy format (ilmiy notatsiyalar uchun katta E ishlatadi) |
:o | Sakkizlik format |
:x | O'n oltinlik format, kichik harfli |
:X | O'n oltinlik format, katta harfli |
:n | Raqam 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:
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:
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:
print(txt.format(price, itemno, count))Va ko'proq o'rinbosar qo'shing:
Misol
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
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
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
myorder = "Menda {carname} bor, bu {model}."
print(myorder.format(carname="Ford", model="Mustang"))