Satrlar bilan ishlash
Ismlar, xabarlar, manzillar, parollar — dasturlar doimo matn bilan ishlaydi. Python'da matn satr (str) deb ataladi. Bu darsda satrlarni birlashtirish, bo'laklarga ajratish va o'zgartirishni o'rganamiz.
Bu darsda
- Satrlarni birlashtirish va takrorlash
- Satr uzunligi —
len() - Indekslar: satrdan bitta belgini olish
- Kesmalar: satrning bir qismini olish
- Satr metodlari:
upper(),strip(),replace(),split()va boshqalar - f-satrlar — o'zgaruvchilarni matnga qulay joylash
Satr yaratish
Satr — qo'shtirnoq ichidagi belgilar ketma-ketligi. Bir necha qatorli matn uchun uchtalik qo'shtirnoq """ ishlatiladi:
shahar = "Samarqand" maqol = """Ilm olish — igna bilan quduq qazishdek gap.""" print(shahar) print(maqol)
Birlashtirish va takrorlash
+ belgisi satrlarni bir-biriga yopishtiradi, * esa satrni takrorlaydi:
ism = "Aziz"
familiya = "Karimov"
toliq = familiya + " " + ism
print(toliq)
print("-" * 20)
print("Ha" * 3)
Karimov Aziz -------------------- HaHaHa
+ o'z-o'zidan bo'sh joy qo'ymaydi — uni " " ko'rinishida o'zingiz qo'shishingiz kerak.
Satr uzunligi: len()
len() funksiyasi satrdagi belgilar sonini qaytaradi. Bo'sh joylar va tinish belgilari ham sanaladi:
print(len("Python"))
print(len("Salom, dunyo!"))
print(len(""))
6 13 0
Indekslar: bitta belgini olish
Satrdagi har bir belgining o'z tartib raqami — indeksi bor. Diqqat: dasturlashda sanash 0 dan boshlanadi! Belgini olish uchun o'zgaruvchi nomidan keyin kvadrat qavs ichida indeks yoziladi: soz[0].
| Belgi | P | y | t | h | o | n |
|---|---|---|---|---|---|---|
| Indeks | 0 | 1 | 2 | 3 | 4 | 5 |
| Teskari | -6 | -5 | -4 | -3 | -2 | -1 |
soz = "Python" print(soz[0]) print(soz[3]) print(soz[-1]) print(soz[-2])
P h n o
Manfiy indekslar satrni oxiridan sanaydi: -1 — oxirgi belgi, -2 — oxiridan ikkinchisi. Bu satr uzunligini bilmasdan ham oxirgi belgini olishning qulay usuli.
Mavjud bo'lmagan indeksni so'rasangiz, Python IndexError beradi:
soz = "Python" print(soz[6])
Kesmalar: satrning bir qismini olish
Kesma (inglizcha slice) satrning bir bo'lagini qaytaradi: soz[boshi:oxiri]. Bunda boshi indeksli belgi kiradi, oxiri esa kirmaydi.
soz = "Toshkent" print(soz[0:4]) print(soz[4:8]) print(soz[:4]) print(soz[4:]) print(soz[-3:]) print(soz[::-1])
Tosh kent Tosh kent ent tnekhsoT
soz[:4]— boshidan 4-indeksgacha (boshi yozilmasa, 0 deb olinadi).soz[4:]— 4-indeksdan oxirigacha.soz[::-1]— butun satr teskari tartibda. Uchinchi raqam — qadam:-1orqaga yurishni bildiradi.
Satrlarni o'zgartirib bo'lmaydi
Satr yaratilgandan keyin uning ichidagi belgini almashtirib bo'lmaydi:
soz = "Salom" soz[0] = "K"
Buning o'rniga yangi satr yasaladi: soz = "K" + soz[1:]. Quyida ko'radigan barcha metodlar ham asl satrni o'zgartirmaydi, balki yangi satr qaytaradi.
Satr metodlari
Metod — muayyan turdagi qiymatga tegishli funksiya. U qiymatdan keyin nuqta qo'yib chaqiriladi: matn.upper(). Satrlarning eng foydali metodlari:
| Metod | Nima qiladi | Misol | Natija |
|---|---|---|---|
upper() | Hammasini katta harf qiladi | "salom".upper() | "SALOM" |
lower() | Hammasini kichik harf qiladi | "SALOM".lower() | "salom" |
title() | Har so'zni bosh harf bilan | "ali valiyev".title() | "Ali Valiyev" |
capitalize() | Faqat birinchi harf katta | "salom DUNYO".capitalize() | "Salom dunyo" |
strip() | Chetdagi bo'sh joylarni olib tashlaydi | " ha ".strip() | "ha" |
replace(a, b) | a ni b ga almashtiradi | "olma".replace("o", "a") | "alma" |
count(a) | a necha marta uchrashini sanaydi | "banan".count("a") | 2 |
find(a) | a ning birinchi indeksi (yo'q bo'lsa -1) | "salom".find("l") | 2 |
startswith(a) | a bilan boshlanadimi? | "+998901234567".startswith("+998") | True |
endswith(a) | a bilan tugaydimi? | "rasm.jpg".endswith(".jpg") | True |
isdigit() | Faqat raqamlardan iboratmi? | "2026".isdigit() | True |
split() | Satrni bo'laklarga ajratadi | "a b c".split() | ['a', 'b', 'c'] |
matn = " Bugun havo juda issiq "
print(matn.strip())
print(matn.upper())
print(matn.replace("issiq", "salqin").strip())
print(matn.count("u"))
Bugun havo juda issiq BUGUN HAVO JUDA ISSIQ Bugun havo juda salqin 3
Metodlarni ketma-ket ham chaqirish mumkin: matn.strip().upper() — avval bo'sh joylar olinadi, keyin natija katta harflarga o'tkaziladi.
split() va join()
split() satrni bo'laklarga ajratib, ro'yxat qaytaradi (ro'yxatlarni 12-darsda o'rganamiz). Qavs ichida ajratuvchi belgini ko'rsatish mumkin. join() esa aksincha — bo'laklarni bitta satrga yig'adi:
sana = "18.10.2026"
qismlar = sana.split(".")
print(qismlar)
mevalar = "olma,anor,uzum"
print(mevalar.split(","))
print(" - ".join(["olma", "anor", "uzum"]))
['18', '10', '2026'] ['olma', 'anor', 'uzum'] olma - anor - uzum
in — satr ichida bormi?
in kalit so'zi bir satr ikkinchisining ichida bor-yo'qligini tekshiradi va True yoki False qaytaradi:
xabar = "Ertaga dars soat 9:00 da boshlanadi"
print("dars" in xabar)
print("imtihon" in xabar)
f-satrlar: matnga qiymat joylash
O'zgaruvchilarni matnga joylashtirishning eng qulay usuli — f-satr. Qo'shtirnoq oldiga f harfi qo'yiladi, o'zgaruvchilar esa figurali qavs { } ichiga yoziladi:
ism = "Malika"
yosh = 16
print(f"Salom, {ism}! Siz {yosh} yoshdasiz.")
print(f"Kelasi yili {yosh + 1} yoshga to'lasiz.")
Salom, Malika! Siz 16 yoshdasiz. Kelasi yili 17 yoshga to'lasiz.
Solishtiring: xuddi shu natijani + bilan olish uchun "Salom, " + ism + "! Siz " + str(yosh) + " yoshdasiz." deb yozish kerak bo'lardi. f-satr ancha qisqa va o'qilishi oson, u sonlarni ham o'zi matnga aylantiradi.
Sonlarni chiroyli ko'rsatish
Figurali qavs ichida ikki nuqtadan keyin format ko'rsatish mumkin:
narx = 1250000
pi = 3.14159265
print(f"{pi:.2f}")
print(f"{narx:,}")
print(f"{narx:,} so'm".replace(",", " "))
3.14 1,250,000 1 250 000 so'm
:.2f— verguldan keyin 2 ta raqam qoldiradi.:,— minglik xonalarni vergul bilan ajratadi. O'zbekistonda minglar odatda bo'sh joy bilan ajratiladi, shuning uchun uchinchi qatorda vergullarni bo'sh joyga almashtirdik.
Mashqlar
1-mashq Ismni tartibga keltiring
Foydalanuvchi ismini tartibsiz kiritdi. Uni chetidagi bo'sh joylarsiz va har so'z bosh harf bilan chiqaring: Ali Valiyev.
ism = " aLI vaLIyev "
Yechimni ko'rish
ism = " aLI vaLIyev " print(ism.strip().title())
2-mashq Teskari so'z
soz o'zgaruvchisidagi so'zni teskari tartibda chiqaring.
soz = "Python"
Yechimni ko'rish
soz = "Python" print(soz[::-1])
3-mashq Chek
f-satr yordamida xarid chekini chiqaring. Natija aynan shunday bo'lishi kerak: Olma: 2.5 kg x 12000 so'm = 30000 so'm
mahsulot = "Olma" kg = 2.5 narx = 12000
Ishora
kg * narx natijasi 30000.0 bo'ladi (kasr son). Uni nuqtasiz ko'rsatish uchun :.0f formatidan yoki int() dan foydalaning.
Yechimni ko'rish
mahsulot = "Olma"
kg = 2.5
narx = 12000
print(f"{mahsulot}: {kg} kg x {narx} so'm = {kg * narx:.0f} so'm")
4-mashq Elektron pochta
Elektron pochta manzilidan foydalanuvchi nomini (@ belgisigacha bo'lgan qismni) va domenni ajratib oling.
Foydalanuvchi: aziz.karimov Domen: mail.uz
pochta = "aziz.karimov@mail.uz"
Ishora
pochta.split("@") ikki bo'lakli ro'yxat qaytaradi. Birinchi bo'lak — [0], ikkinchisi — [1].
Yechimni ko'rish
pochta = "aziz.karimov@mail.uz"
qismlar = pochta.split("@")
print("Foydalanuvchi:", qismlar[0])
print("Domen:", qismlar[1])
5-mashq Harflarni sanang
Matnda «a» harfi necha marta uchrashini sanang. Katta «A» ham hisobga olinsin.
salom = "Assalomu alaykum"
Ishora
Avval butun matnni kichik harflarga o'tkazing, keyin sanang.
Yechimni ko'rish
salom = "Assalomu alaykum"
print(salom.lower().count("a"))
O'zingizni sinang
"Salom"[1] nimaga teng?
"S""a""l"- Xato beradi
To'g'ri. Indekslar 0 dan boshlanadi: S — 0, a — 1.
len("Python") nimaga teng?
5760
To'g'ri. Python so'zida 6 ta harf bor. Indekslar esa 0 dan 5 gacha.
"ab" * 3 nimaga teng?
"ababab""ab3""aaabbb"- Xato beradi
To'g'ri. Satrni songa ko'paytirish uni takrorlaydi.
"Toshkent"[:4] nimani qaytaradi?
"Toshk""kent""oshk""Tosh"
To'g'ri. 0, 1, 2, 3-indeksli belgilar olinadi; 4-indeks kirmaydi.
x = 7 bo'lsa, f"Natija: {x * 2}" nimaga teng?
"Natija: {x * 2}""Natija: 14""Natija: 77""Natija: x * 2"
To'g'ri. f-satrda figurali qavs ichidagi ifoda hisoblanadi va natija matnga qo'yiladi.
Xulosa
+satrlarni yopishtiradi,*takrorlaydi,len()uzunligini beradi.- Indekslar 0 dan boshlanadi;
-1— oxirgi belgi. - Kesma
s[boshi:oxiri]—oxiriindeksi kirmaydi.s[::-1]— teskari satr. - Satrni o'zgartirib bo'lmaydi — metodlar yangi satr qaytaradi.
- Muhim metodlar:
upper,lower,title,strip,replace,split,count,find. - f-satr —
f"Salom, {ism}!"— qiymatlarni matnga joylashning eng qulay usuli.