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.