Satrlar bilan ishlash
Biz ma'lumot turlari mavzusida satr turi bilan tanishib o'tgan edik. Satrlar str
toifasida bo'ladi. Quyida str
toifasida
o'zgaruvchi e'lon qilish va turini aniqlashni ko'rib o'tamiz.
Natija:
Satrlar bilan qanday amallarni bajarishimiz mumkin?
Ikkita satrni bir-biriga qo'shish
Dastur tuzish davomida bir nechta satrlarni qo'shiga to'g'ri kelishi mumkin. Bunga misol qilib sayt foydalanuvchilarining ism va familyasini birlashtirib chiqarishni olishimiz mumkin. Quyida shunga doir misola ko'ramiz.
Natija:
Ko'rib turganingizdek bizni misolimizda ism va familya orasida bo'sh joysiz natija oldik. Sababi Python ikki o'zgaruvchini to'g'ridan to'g'ri qo'shadi. Bu xatoni quyidagich yechishimiz mumkin.Natija:
Biz ikkala o'zgaruvchi orasiga bo'sh joy qo'shib muamoga yechim topdik. Buni boshqa ko'rinishdaham amalga oshirsak bo'ladi ortiqcha qo'shishlarsiz.
Natija:
Bu yerda biz familya oldidan bitta bo'sh joy qo'shib qo'ydik. Sizningcha yana qanday yo'li mavjud? Bu yo'lni topish o'zingiz izlanib ko'ring.Satr uzunligini aniqlash
Satrlar bilan ishlaganimzda satrlarni uzunligi bizga juda ko'p hollarda kerak bo'ladi. Satrlarni uzunligini aniqlash uchun Pythonda
len
deb nomlangan o'zining maxsus funksiyasi mavjud. Quyida bu funksiyadan qanday foydalanishni ko'rib chiqamiz.
Natija:
Biz natijani ikki xil usulda chiqardik. Birinchi usulda o'zgaruvchiga satr
uzunligini tayinladik. Ikkinchisida to'g'ridan-to'g'ri print
funksiyasi bilan birga chiqardik.
Ikkala xolat ham to'g'ri har bi dasurchi o'z vaziyatiga qarab ishlatishi mumkin.
Bir necha qatorli satr yozish
Bu usulda satr qanday holatda yozilsa shu holatda chop etiladi.Satrlarni tekshirish
Satrlarni tekshirish deganda bir satrning qismi ikkinchisining ichida mavjud yoki yo'qligini tekshirish uchun xizmat qiladi.
Buni in
operatori yordamida amalga oshiramiz.
Satrdan qism satr kesish
Satrlar xotirada ketma-ket saqlanadi. Ya'ni massiv(list) ko'rinishida saqlanadi. Har bir belgi o'zini o'rniga ega bo'ladi. Belgilarning
xotiradagi o'rni 0
dan boshlanadi. Misol uchun a = "Satr"
o'zgaruvchisi xotirada quiydagicha saqlanadi. S - harfi 0
index(o'rinda) joylashadi.
Misol:
Bizni misolimizda indexlar quyidagi tartibda:
Agar satrdan birinchi belgini olmoqchi bo'lsak quyidagicha bo'ladi.
Natija:
Agar[1]
yozadigan bo'lsak natija u
bo'ladi. Amaliyotda o'zgartirib kiritib ko'ring.
Agarda satr uzunligidan katta bo'lgan index
kiritsak index xatoligi
sodir bo'ladi.
natija:
Endi satrlarni faqat bitta belgini emas ma'lum bir qismni kesib olishni ko'rib chiqamiz.
Aytayili bizga Bu satr
degan so'zdan Bu
so'zini ajratib olish vazifasi qo'yildi bu holatlar uchun Pythonda maxsusu imkoniyatlar bor. Bu Slicing(kesish)
deyiladi.
Kesiib olish kerak bo'lgan qismni boshlang'ich(start) va tugash indexlari(end) orqali kesib olish mumkin bo'ladi. Sintaksisi quyidagicha:
Endi amaliyotda sinab ko'ramiz.Natija:
Misolimizda u
[1] indexda edi nega u
chop qilinmadi deyishingiz mumkin, chunki slicing
da start
olinadi end
esa end-1
qoidasida ishlaydi. Shuning uchun oxirgi olinishi kerak bo'lgan element
indexiga 1
ni qo'shib kiritsh kutilgan natijani olishga sabab bo'ladi.
Endi esa bu so'zini kesib olamiz.
Natija:
Endi sizga vazifa bo'ladi: to'liq ism sharifingizni fish
deb nomlangan o'zgaruvchida saqlang va ismingizni slicing
qiling.
Satrga o'zgartirish kiritish
Satrlarni o'zgartirish holatlariham uchrab turadi. Misol uchun satrdagi bo'sh joylarni tozalash, katta harfga o'girish yoki kichik harfga o'girish. Bunday holatlar uchun ham Pythonda satrlar bilan ishlash uchun maxsus funksiyalar mavjud.
Aytaylik bizga shunday vazifa qo'yildi: Foydalanuvchi ismini kiritganidan so'ng ismini katta harflar bilan qabul qilib oling. Chunki har doim ham foydalanuvchilar qoidalarga amal qilmaydi yoki tasodifan to'g'ri kiritmaydi. Bunday vaziyatlar uchun dasutruchi ham tayyor turishi zarur.
Misol:
Natija:
E'tibor bergan bo'lsangiz aralash tartibda ma'lumotlar kritildi. Bu muamoga quyidagich yechim qilishimiz mumkin.
Natija:
Bu misoldaupper
funksiyasidan foydalandik. Bu funksiya belgilarni katta harflarga o'girishga yordam beradi.
Bu bilan biz ma'lumotlarni to'g'ri va toza holatda saqlaymiz. Agar har xil korinishda saqlasak bu bizga juda ko'p noqulayliklarga olib keladi.
Endigi vazifamiz foydalanuvchi email manzlini ham kiritsin ism shrifini katta harflarda email manzilini esa kichik harflarda qabul qilishimiz kerak.
Ism uchun upper
, email uchun esa kichik harflarga o'girish funkisyasi lowe
dan foydalanamiz.
Natija:
Ismingizni katta harflar bilan kiriting: SArdor
Emailingizni kiriting: [email protected]
FISH: SARDOR
E-MAIL [email protected]
Satrni formatlash
Satrlani formatlash uchun Pythonda format
funksiyasi va f"" sintaksisi mavjud.
f""
sintaksisidan quyidagi tartibda foydalanish mumkin:
Natija:
Ismingizni katta harflar bilan kiriting: SardoR
Emailingizni kiriting: [email protected]
FISH: SARDOR, EMAIL: [email protected]
f""
ko'rinishida formatlash bizga bitta satr bilan ishlash uchun juda qulay bo'ladi. Boshqa usullar ham mavjud lekin bu dasturni
tushunarli va oson o'qilishiga sbabchi bo'ladi. {}
belgilaridan foydalanish uchun ""
oldidan f
ni qo'yish majburiy hisoblanadi qagar qo'yilmasa
Python bu satrni formatlash zarurligini tushunmaydi va oddiy satr deb qabul qiladi. f
qo'yilsa Python formatlashga tayyor bo'ladi va har bir {}
belgilari
kelganda uning qiymatlarini tekshirib natijani qaytaradi.
format
funksiyasidan quyidagi tartibda foydalanamiz:
Natija:
Ismingizni katta harflar bilan kiriting: Sardor
Emailingizni kiriting: [email protected]
FISH: Sardor, EMAIL: [email protected]
Bu misolimizda nimani tushundingiz? Keling tushunishga haraka qilib ko'ramiz. format
funksiyasi satr oxirga .
bilan qo'shiladi
va bir qancha qiymatlar qabul qiladi. Har bir qiymatni satr ichida joylashgan {}
belgilar o'rniga joylashtiradi. Joylashtirish tartibi quyidagicha:
1. format
ichida yozilgan ketma ketlikda satr ichidagi {}
belgilar o'rniga joylashtiriladi. Ya'ni "{}, {}, {}".format(1, 2, 3)
bo'lsa natija 1, 2, 3
bo'ladi.
2. Satr ichiga joylangan {}
belgilarga tartib raqamini berishimiz mumkin. Aniqroq aytganda .format
da joylashgan o'rnini satr ichidagi {}
belgilarga qo'shamiz. Misol uchun
"{1}, {0}, {2}".format(1, 2, 3)
bo'lsa natija 3, 1, 2
bo'ladi. Bu yerda bir narsa e'tiborli bo'ling format
funksiyasini tartiblash uchun indexlar 0
dan boshlanadi.
3. Satrlarda format
funksiyai bilan formatlashni yana bir yo'li bu kalit so'zlar yordamida. Biz yuqorida index lar orqali tartib raqami bilan joylashtirdik. Xaxsus kalit so'zlar orqali ham formatlash mumkin.
"{bir}, {uch}, {ikki}".format(bir=1, ikki=2, uch=3)
bo'lsa natija 1, 3, 2
bo'ladi. Kalit so'zlar orqali formatlash adashish ehtimoligini kamaytiradi.
Misollar:
Bu misllarni har birini ishlatib ko'ring va tahlil qiling. Sizga satrlarni formatlash uchun quyida vazifa qoldiraman.
Foydalanuvchi ismi, tug'ilgan yili, manzilini ekrandan kiritsin, natijani quyidagicha chiqaruvchi dastur tuzing.
Mening ismim [ism_uchun_joy], Yoshim [yosh_uchun_joy]. [manzil] da yashayman.
Satrlar bilan ishlash uchun boshqa funksiyalar
Quyida matnli toifa bilan ishlaydaigan funksiyalarni jadval ko'rinishida keltirib o'tdim.
Funksiya(method) | Ta'rif |
---|---|
capitalize() | Satrning birinchi belgisini katta harflarga o'giradi. |
casefold() | Satrni kichik harfalarga o'giradi.lowerdan asosiy farqi barcha unicode larni qo'llab quvatlaydi. Straße==strasse |
center() | Satrni markazga joylashtiradi. |
count() | Maxsus belgilar sonini qaytaradi. |
encode() | Satrni encode qilingan ko'rinishini qaytaradi |
endswith() | True, qaytaradi agar ko'rsatilgan belgi bilan tugasa ak holda False. |
expandtabs() | So'zga belgilangan uzunlikdagi tab qo'shadi |
find() | Satrdan berilgan qiymatni topadi va joylashgan o'rnini qaytardi agar mavjud bo'lsa. |
format() | Satrni formatlash uchun. |
format_map() | Dict turidagi ma'lumot bilan satrni formatlaydi |
index() | Satrdan berilgan qiymatni topadi va joylashgan o'rnini qaytardi agar mavjud bo'lsa. |
isalnum() | Agar satrdagi barcha belgilar harf va sonlar bo'lsa, True qiymatini qaytaradi |
isalpha() | Agar satrdagi barcha belgilar harf bo'lsa True qiymatini qaytaradi |
isascii() | Agar satrdagi barcha belgilar ascii belgilar bo'lsa, True qiymatini qaytaradi |
isdecimal() | Agar satrdagi barcha belgilar o'nli kasr bo'lsa, True qiymatini qaytaradi |
isdigit() | True qiymat qaytaradi agar satrning barcha belgilari raqam bo'sa. |
isidentifier() | Agar satr identifikator bo'lsa, True qiymatini qaytaradi |
islower() | True qiymat qaytaradi agar barcha belgilar katta harf bo'lsa. |
isnumeric() | True qiymat qaytaradi agarda barcha belgilar raqam bo'lsa. |
isprintable() | True qiymat qaytaradi agarda matnni chop qilish mumkin bo'lsa. |
isspace() | Agar satrdagi barcha belgilar bo'sh joy bo'lsa, True qiymatini qaytaradi |
istitle() | Agar satr sarlavha qoidalariga rioya qilsa, True qiymatini qaytaradi |
isupper() | True qiymat qaytaradi agarda barcha qiymatlar KATTA(UPPER) harflar bo'lsa. |
join() | join() usuli - bu Python-da satrlar ketma-ketligini ma'lum bir ajratuvchi bilan birlashtirish uchun ishlatiladigan string usuli. U iteratsiyani oladi (masalan, ro'yxat, kortej yoki satr) va yangi satrni qaytaradi, bunda takrorlanuvchi elementlar ajratuvchi sifatida chaqirilgan satr yordamida birlashtiriladi. |
ljust() | satrni chap tomonini maxsusu belgila bilan to'ldiradi. |
lower() | Satrni kichik harflarga o'giradi. |
lstrip() | Satrni chap tomondan kesilgan holatini qaytaradi. |
maketrans() | Tarjimalarda foydalanish uchun tarjima jadvalini qaytaradi |
partition() | Berilgan qiymatni qismga bo'ladi va kortej ko'rinishida qaytaradi. |
replace() | Berilgan qiymatni, berilgan qiymat bilan almashtirilgan satrni qaytaradi |
rfind() | Belgilangan qiymat uchun satrni qidiradi va u topilgan joyning oxirgi holatini qaytaradi |
rindex() | Berilgan belgini qidiradi va oxirgi indexini qaytaradi. |
rjust() | Satrni o'ng tomondan tekislaydi |
rpartition() | Berilgan qiymatni chap tomondan qismga bo'ladi va ro'yxat ko'rinishida qaytaradi. |
rsplit() | Chap tomondan kesilgan satrni ro'yxat ko'rinishda qaytardi |
rstrip() | Chap tomondan kesilgan matnni qaytaradi. |
split() | Berilgan maxsus belgi bilan matnni list k'rinishda ajratadi. |
splitlines() | Qatorni qatorlar oralig'ida ro'xat ko'rinishida qaytaradi. |
startswith() | True qilynat qaytaradi agar satr berilgan belgilar bilan boshlansa. |
strip() | Matnni kesilgan ko'rinishini qaytaradi. |
swapcase() | Regestrlarni lamashtiradi kattani kichik, kichikni esa kattaga. |
title() | Matndagi har bir so'zdagi birinchi harfni katta harfga o'zgartiradi. |
translate() | Tarjima qilingan matnni qaytaradi |
upper() | Mattni katt harflarga o'girish |
zfill() | Matnni boshidan 0 bilan to'ldiradi |