7. Stringlar bilan ishlash¶
String — matnli ma’lumotlarni saqlash uchun ishlatiladigan ma’lumot turi.
Python'da stringlar str turi bilan ifodalanadi.
ism = "Softromeda"
xabar = "Python dasturlash tili."
print(ism)
print(xabar)
Natija:
Softromeda
Python dasturlash tili.
String yaratish¶
Stringni bir yoki ikki qo‘shtirnoq bilan yaratish mumkin:
birinchi_matn = "Softromeda"
ikkinchi_matn = 'Python'
Ikkalasi ham str hisoblanadi.
print(
type(birinchi_matn)
)
print(
type(ikkinchi_matn)
)
Natija:
<class 'str'>
<class 'str'>
Uchta qo‘shtirnoq¶
Ko‘p qatorli matn uchun uchta qo‘shtirnoq ishlatilishi mumkin:
matn = """
Softromeda
Python dasturlash
kursi
"""
print(
matn
)
Natija:
Softromeda
Python dasturlash
kursi
String indekslari¶
String ichidagi har bir belgi indeksga ega.
Indeks 0 dan boshlanadi.
ism = "Softromeda"
Indekslar:
S o f t r o m e d a
0 1 2 3 4 5 6 7 8 9
Birinchi belgini olish:
print(
ism[0]
)
Natija:
S
Oxirgi belgini olish¶
Manfiy indekslardan foydalanish mumkin:
ism = "Softromeda"
print(
ism[-1]
)
Natija:
a
-10 -9 -8 -7 -6 -5 -4 -3 -2 -1
S o f t r o m e d a
String uzunligi¶
len() string uzunligini qaytaradi.
ism = "Softromeda"
uzunlik = len(
ism
)
print(
f"Uzunlik: {uzunlik}"
)
Natija:
Uzunlik: 10
String slicing¶
Stringning bir qismini olish uchun slicing ishlatiladi.
Umumiy ko‘rinish:
matn[boshlanish:tugash]
tugash indeksi natijaga kirmaydi.
ism = "Softromeda"
print(
ism[0:5]
)
Natija:
Softr
Slicing boshlanish qiymatisiz¶
ism = "Softromeda"
print(
ism[:5]
)
Natija:
Softr
Slicing tugash qiymatisiz¶
ism = "Softromeda"
print(
ism[5:]
)
Natija:
omeda
Stringni to‘liq nusxalash¶
ism = "Softromeda"
nusxa = ism[:]
print(
nusxa
)
Slicing qadam bilan¶
Slicing uchinchi parametr orqali qadam qabul qiladi:
matn[boshlanish:tugash:qadam]
Masalan:
matn = "Softromeda"
print(
matn[0:10:2]
)
Natija:
Sfrmd
Har ikkinchi belgini olish¶
matn = "Python"
natija = matn[::2]
print(
natija
)
Natija:
Pto
Stringni teskari qilish¶
Slicing yordamida stringni teskari qilish mumkin:
matn = "Softromeda"
teskari_matn = matn[::-1]
print(
teskari_matn
)
Natija:
ademortfoS
Stringlar o‘zgarmas¶
Python'da stringlar immutable, ya’ni yaratilgandan keyin ularning ichidagi belgini bevosita o‘zgartirib bo‘lmaydi.
Noto‘g‘ri:
ism = "Softromeda"
ism[0] = "X"
Bu xatolik beradi.
Buning o‘rniga yangi string yaratish kerak:
ism = "Softromeda"
ism = (
"X"
+ ism[1:]
)
print(
ism
)
Natija:
Xoftromeda
Stringlarni birlashtirish¶
Stringlarni + yordamida birlashtirish mumkin:
ism = "Softromeda"
kasb = "Dasturchi"
natija = (
ism
+ " - "
+ kasb
)
print(
natija
)
Natija:
Softromeda - Dasturchi
Stringni takrorlash¶
* yordamida stringni takrorlash mumkin:
belgi = "-"
natija = belgi * 20
print(
natija
)
Natija:
--------------------
in operatori¶
String ichida ma’lum matn mavjudligini tekshirish:
matn = "Python dasturlash tili"
if "Python" in matn:
print(
"Python so‘zi mavjud."
)
not in¶
matn = "Softromeda dasturlash"
if "Java" not in matn:
print(
"Java so‘zi mavjud emas."
)
lower()¶
Stringdagi barcha harflarni kichik harfga aylantiradi.
matn = "SOFTROMEDA"
natija = matn.lower()
print(
natija
)
Natija:
softromeda
upper()¶
Barcha harflarni katta harfga aylantiradi.
matn = "softromeda"
natija = matn.upper()
print(
natija
)
Natija:
SOFTROMEDA
capitalize()¶
Birinchi belgini katta harfga aylantiradi:
matn = "python dasturlash tili"
print(
matn.capitalize()
)
Natija:
Python dasturlash tili
title()¶
Har bir so‘zning birinchi harfini katta qiladi:
matn = "python dasturlash tili"
print(
matn.title()
)
Natija:
Python Dasturlash Tili
strip()¶
Stringning boshidagi va oxiridagi bo‘sh joylarni olib tashlaydi.
matn = " Softromeda "
natija = matn.strip()
print(
natija
)
Natija:
Softromeda
lstrip()¶
Faqat chap tomondagi bo‘sh joylarni olib tashlaydi:
matn = " Softromeda "
print(
matn.lstrip()
)
rstrip()¶
Faqat o‘ng tomondagi bo‘sh joylarni olib tashlaydi:
matn = " Softromeda "
print(
matn.rstrip()
)
replace()¶
String ichidagi bir qismni boshqa qiymatga almashtiradi.
matn = "Salom Ali"
natija = matn.replace(
"Ali",
"Softromeda"
)
print(
natija
)
Natija:
Salom Softromeda
split()¶
Stringni qismlarga ajratib, list qaytaradi.
matn = "Python juda yaxshi til"
sozlar = matn.split()
print(
sozlar
)
Natija:
['Python', 'juda', 'yaxshi', 'til']
Belgisi bo‘yicha split()¶
ma_lumot = "Softromeda,Python,Dasturchi"
qismlar = ma_lumot.split(
","
)
print(
qismlar
)
Natija:
['Softromeda', 'Python', 'Dasturchi']
join()¶
split()ning teskari operatsiyasi sifatida join() ishlatilishi mumkin.
sozlar = [
"Python",
"juda",
"yaxshi",
"til"
]
matn = " ".join(
sozlar
)
print(
matn
)
Natija:
Python juda yaxshi til
join() bilan vergul¶
mevalar = [
"olma",
"banan",
"anor"
]
matn = ", ".join(
mevalar
)
print(
matn
)
Natija:
olma, banan, anor
find()¶
String ichidan matnni qidiradi.
matn = "Softromeda Python dasturlash"
joylashuv = matn.find(
"Python"
)
print(
joylashuv
)
Natija:
11
Agar topilmasa:
-1
qaytaradi.
index()¶
index() ham qidiradi, lekin topilmagan qiymatda xatolik beradi.
matn = "Softromeda Python"
joylashuv = matn.index(
"Python"
)
print(
joylashuv
)
count()¶
Ma’lum qism necha marta uchrashganini hisoblaydi.
matn = "banana"
soni = matn.count(
"a"
)
print(
f"Takrorlanish soni: {soni}"
)
Natija:
Takrorlanish soni: 3
startswith()¶
String ma’lum matn bilan boshlanishini tekshiradi.
matn = "Softromeda Python"
if matn.startswith("Softromeda"):
print(
"Matn Softromeda bilan boshlangan."
)
endswith()¶
String ma’lum matn bilan tugashini tekshiradi.
fayl_nomi = "dastur.py"
if fayl_nomi.endswith(".py"):
print(
"Bu Python fayli."
)
isdigit()¶
String faqat raqamlardan iboratligini tekshiradi.
matn = "12345"
if matn.isdigit():
print(
"Matn raqamlardan iborat."
)
Bu foydalanuvchi kiritgan ma’lumotni tekshirishda foydali:
yosh = input(
"Yoshingizni kiriting: "
)
if yosh.isdigit():
yosh = int(
yosh
)
print(
f"Siz {yosh} yoshdasiz."
)
else:
print(
"Iltimos, son kiriting."
)
isalpha()¶
String faqat harflardan iboratligini tekshiradi.
ism = "Softromeda"
if ism.isalpha():
print(
"Ism faqat harflardan iborat."
)
isalnum()¶
String harf va raqamlardan iboratligini tekshiradi.
foydalanuvchi_nomi = "Softromeda123"
if foydalanuvchi_nomi.isalnum():
print(
"Foydalanuvchi nomi yaroqli."
)
isspace()¶
String faqat bo‘sh joylardan iboratligini tekshiradi.
matn = " "
if matn.isspace():
print(
"Matn faqat bo‘sh joylardan iborat."
)
casefold()¶
Katta-kichik harf farqini yo‘qotib taqqoslash uchun casefold() foydali.
birinchi_matn = "SOFTROMEDA"
ikkinchi_matn = "softromeda"
if (
birinchi_matn.casefold()
==
ikkinchi_matn.casefold()
):
print(
"Matnlar bir xil."
)
String formatlash¶
String ichiga qiymat qo‘shishning eng qulay usullaridan biri f-string.
ism = "Softromeda"
yosh = 25
matn = (
f"Ism: {ism}, "
f"Yosh: {yosh}"
)
print(
matn
)
Natija:
Ism: Softromeda, Yosh: 25
Ifodalarni f-string ichida ishlatish¶
birinchi_son = 10
ikkinchi_son = 20
print(
f"Yig‘indi: {birinchi_son + ikkinchi_son}"
)
Natija:
Yig‘indi: 30
Sonlarni formatlash¶
narx = 1250000
print(
f"Narx: {narx:,}"
)
Natija:
Narx: 1,250,000
O‘nlik sonlarni formatlash¶
narx = 125.67891
print(
f"Narx: {narx:.2f}"
)
Natija:
Narx: 125.68
String ichida maxsus belgilar¶
Ba’zi belgilar maxsus ma’noga ega.
Yangi qator:
print(
"Salom\nSoftromeda"
)
Natija:
Salom
Softromeda
Tab:
print(
"Ism:\tSoftromeda"
)
Natija:
Ism: Softromeda
Escape belgilar¶
Qo‘shtirnoqni string ichida ishlatish:
matn = "U \"Softromeda\" dedi."
print(
matn
)
Natija:
U "Softromeda" dedi.
Yoki boshqa turdagi qo‘shtirnoq ishlatish mumkin:
matn = 'U "Softromeda" dedi.'
Raw string¶
Backslash belgilarini maxsus escape sifatida ishlatmaslik uchun r prefiksidan foydalanish mumkin.
yo_l = r"C:\Softromeda\Python"
print(
yo_l
)
Natija:
C:\Softromeda\Python
Stringni belgilar bo‘yicha aylanish¶
String iterable bo‘lgani uchun for bilan ishlatish mumkin.
matn = "Python"
for belgi in matn:
print(
belgi
)
Stringdagi katta harflarni sanash¶
matn = "Softromeda Python"
katta_harflar_soni = 0
for belgi in matn:
if belgi.isupper():
katta_harflar_soni += 1
print(
f"Katta harflar soni: {katta_harflar_soni}"
)
Stringdagi raqamlarni sanash¶
matn = "Softromeda2026"
raqamlar_soni = 0
for belgi in matn:
if belgi.isdigit():
raqamlar_soni += 1
print(
f"Raqamlar soni: {raqamlar_soni}"
)
Palindrom¶
Palindrom — oldidan va orqasidan bir xil o‘qiladigan matn yoki so‘z.
Masalan:
alla
non
kiyik
Tekshirish:
soz = input(
"So‘z kiriting: "
)
if soz == soz[::-1]:
print(
"Bu palindrom."
)
else:
print(
"Bu palindrom emas."
)
Matnni tozalash¶
Foydalanuvchi kiritgan matnda ortiqcha bo‘sh joylar bo‘lishi mumkin.
ism = input(
"Ismingizni kiriting: "
)
ism = ism.strip()
print(
f"Salom, {ism}!"
)
Katta-kichik harflarni ham bir xil ko‘rish kerak bo‘lsa:
foydalanuvchi_nomi = input(
"Foydalanuvchi nomini kiriting: "
)
foydalanuvchi_nomi = (
foydalanuvchi_nomi
.strip()
.casefold()
)
if foydalanuvchi_nomi == "softromeda":
print(
"Foydalanuvchi topildi."
)
Stringdan so‘zlar sonini topish¶
matn = input(
"Matn kiriting: "
)
sozlar = matn.split()
print(
f"So‘zlar soni: {len(sozlar)}"
)
So‘zlarni teskari chiqarish¶
matn = "Python Softromeda"
sozlar = matn.split()
sozlar.reverse()
natija = " ".join(
sozlar
)
print(
natija
)
Natija:
Softromeda Python
Amaliy mashqlar¶
Mashq 1¶
Foydalanuvchidan ism qabul qilib, uni katta harflarda chiqaring.
Mashq 2¶
Foydalanuvchidan matn qabul qilib, uning uzunligini aniqlang.
Mashq 3¶
Matndagi barcha bo‘sh joylarni olib tashlang.
Mashq 4¶
Matnda "Python" so‘zi bor yoki yo‘qligini tekshiring.
Mashq 5¶
Matndagi barcha a harflari sonini hisoblang.
Mashq 6¶
Matnni teskari qilib chiqaring.
Mashq 7¶
Kiritilgan so‘z palindrom ekanini tekshiring.
Mashq 8¶
Matndagi so‘zlar sonini hisoblang.
Mashq 9¶
Matndagi raqamlar sonini aniqlang.
Mashq 10¶
Foydalanuvchi nomini strip() va casefold() yordamida tozalab, "Softromeda" bilan solishtiring.
Mini loyiha — Softromeda matn tahlilchisi¶
Foydalanuvchi kiritgan matnni tahlil qilamiz.
matn = input(
"Matn kiriting: "
)
tozalangan_matn = (
matn
.strip()
)
sozlar = (
tozalangan_matn
.split()
)
belgilar_soni = len(
tozalangan_matn
)
sozlar_soni = len(
sozlar
)
raqamlar_soni = 0
katta_harflar_soni = 0
kichik_harflar_soni = 0
for belgi in tozalangan_matn:
if belgi.isdigit():
raqamlar_soni += 1
elif belgi.isupper():
katta_harflar_soni += 1
elif belgi.islower():
kichik_harflar_soni += 1
print(
"\n=== Softromeda matn tahlili ==="
)
print(
f"Belgilar soni: {belgilar_soni}"
)
print(
f"So‘zlar soni: {sozlar_soni}"
)
print(
f"Raqamlar soni: {raqamlar_soni}"
)
print(
f"Katta harflar soni: {katta_harflar_soni}"
)
print(
f"Kichik harflar soni: {kichik_harflar_soni}"
)
Masalan, foydalanuvchi:
Softromeda Python 2026
kiritsa, dastur matndagi belgilar, so‘zlar, raqamlar va katta-kichik harflar sonini hisoblaydi.
Bob xulosasi¶
Bu bobda Python'dagi stringlar bilan ishlashni chuqurroq o‘rgandik.
Asosiy tushunchalar:
str
indeks
manfiy indeks
slicing
len()
lower()
upper()
capitalize()
title()
strip()
replace()
split()
join()
find()
index()
count()
startswith()
endswith()
isdigit()
isalpha()
isalnum()
casefold()
Shuningdek:
f-string
escape belgilar
raw string
string slicing
string bilan sikl
palindrom
matnni tozalash
matnni tahlil qilish
Stringlar bilan yaxshi ishlash foydalanuvchi kiritmalarini qayta ishlash, fayllar bilan ishlash, veb-dasturlash, ma’lumotlarni tozalash va ko‘plab boshqa vazifalarda juda muhim.
Keyingi bobda list, tuple, set va dictionary kabi kolleksiyalarni chuqurroq o‘rganamiz.