- Sətirləri birləşdirmək, təkrarlamaq və uzunluğunu tapmaq
- İndeks və kəsiklərlə sətrin hissələrini götürmək
- Sətir metodlarından istifadə etmək
- f-sətirlərlə mətnə qiymətlər yerləşdirmək və ədədləri formatlamaq
Mesajlar, adlar, şifrələr, xəbər başlıqları — proqramların işlədiyi məlumatın böyük hissəsi mətndir. Təsəvvür et ki, sinif yoldaşların üçün avtomatik təbrik kartları hazırlayırsan: «Ad günün mübarək, Elvin! Bu gün 13 yaşın tamam olur.» Kartdan-karta yalnız ad və yaş dəyişir. Bu dərsdə mətnlərlə işləməyi və belə şablonları bir sətirlə qurmağı öyrənəcəksən.
Sətirlər
Sətir (str) dırnaq içində yazılmış simvollar ardıcıllığıdır: hərflər, rəqəmlər, boşluqlar, işarələr. Sətirləri + ilə birləşdirmək, * ilə təkrarlamaq, uzunluğunu isə len() funksiyası ilə tapmaq olar.
greeting = 'Hello'
name = 'Aysel'
message = greeting + ', ' + name + '!'
print(message)
print(len(message))
print('Ha' * 3)▸ Gözlənilən nəticə
Hello, Aysel! 13 HaHaHa
len() boşluqları və durğu işarələrini də sayır, ona görə 'Hello, Aysel!' sətrinin uzunluğu 13-dür. Bəzi simvollar xüsusi yazılır: sətrin içindəki \n mətni yeni sətrə keçirir. Mətndə apostrof varsa, sətri qoşa dırnağa al — onda Python apostrofu sətrin sonu hesab etməyəcək.
print('First line\nSecond line')
print("It's easy!")▸ Gözlənilən nəticə
First line Second line It's easy!
İndekslər və kəsiklər
Sətirdəki hər simvolun öz nömrəsi — indeksi var. Python-da saymaq 0-dan başlayır: birinci simvol [0], ikinci [1] və s. Mənfi indekslər sondan sayır: [-1] sonuncu simvoldur.
| Simvol | P | y | t | h | o | n |
|---|---|---|---|---|---|---|
| İndeks | 0 | 1 | 2 | 3 | 4 | 5 |
| Mənfi indeks | -6 | -5 | -4 | -3 | -2 | -1 |
'Python' sətrində indekslərKəsik sətrin bir hissəsini götürür: word[start:end]. Başlanğıc indeksi kəsiyə daxildir, son indeks isə daxil deyil. Rəqəmlərdən birini buraxsan, Python sətrin lap əvvəlindən və ya lap sonuna qədər götürür.
word = 'Python'
print(word[0])
print(word[5])
print(word[-1])
print(word[0:2])
print(word[2:])
print(word[:4])▸ Gözlənilən nəticə
P n n Py thon Pyth
Sətir metodları
Metod müəyyən tipə məxsus funksiyadır və qiymətdən sonra nöqtə ilə çağırılır: name.upper(). Metodlar ilkin sətri dəyişmir, yeni sətir qaytarır. Ən faydalıları bunlardır:
| Metod | Nə edir | Nümunə |
|---|---|---|
upper(), lower() | bütün hərfləri böyük və ya kiçik edir | 'Baku'.upper() → 'BAKU' |
title() | hər sözün ilk hərfini böyük edir | 'leyla mammadova'.title() → 'Leyla Mammadova' |
strip() | əvvəldəki və sondakı boşluqları silir | ' hi '.strip() → 'hi' |
replace(a, b) | a-nı b ilə əvəz edir | 'tea'.replace('t', 'p') → 'pea' |
count(x) | x-ə neçə dəfə rast gəlindiyini sayır | 'banana'.count('a') → 3 |
startswith(x) | sətrin x ilə başlayıb-başlamadığını yoxlayır | 'Python'.startswith('Py') → True |
city = ' baku '
clean = city.strip()
print(clean.title())
print(clean.upper())
text = 'I like tea. Tea is tasty.'
print(text.lower().count('tea'))
print(text.replace('tea', 'coffee'))
print('tea' in text)
print(text.startswith('I'))▸ Gözlənilən nəticə
Baku BAKU 2 I like coffee. Tea is tasty. True True
Diqqət et: replace böyük-kiçik hərfə həssasdır, ona görə yalnız kiçik hərfli tea əvəz olundu. count üçün isə əvvəlcə bütün mətni lower() ilə kiçik hərflərə çevirdik — metodları belə zəncirvari çağırmaq olar. in operatoru bir sətrin digərinin içində olub-olmadığını yoxlayır və True və ya False qaytarır.
f-sətirlər: şablonlar
Mətnə dəyişənlərin qiymətini yerləşdirməyin ən rahat yolu f-sətirlərdir. Dırnaqdan əvvəl f hərfi yaz, dəyişəni və ya istənilən ifadəni isə fiqurlu mötərizədə {} yaz. Python hər mötərizənin yerinə uyğun qiyməti qoyacaq.
name = 'Elvin'
age = 13
print(f'Happy birthday, {name}! You are {age} today.')
print(f'Next year you will be {age + 1}.')
price = 7.5
print(f'Price: {price:.2f} AZN')▸ Gözlənilən nəticə
Happy birthday, Elvin! You are 13 today. Next year you will be 14. Price: 7.50 AZN
{price:.2f} yazılışı ədədi kəsr hissəsində düz 2 rəqəmlə göstərir — pul məbləğləri üçün ideal formatdır. Bunun niyə vacib olduğunu real çek nümunəsində gör:
item = 'Notebook'
qty = 3
unit_price = 2.35
total = qty * unit_price
print(total)
print(f'{item}: {qty} x {unit_price} = {total:.2f} AZN')▸ Gözlənilən nəticə
7.050000000000001 Notebook: 3 x 2.35 = 7.05 AZN
Birinci sətirdəki qəribə 7.050000000000001 kompüterin onluq kəsrləri ikilik say sistemində saxlamasının nəticəsidir. Formatlama bu kiçik «quyruğu» gizlədir.
İstifadəçi adını səliqəsiz yazıb: ' aYSEL '. Üç sətir çap et: 1) boşluqları silinmiş və yalnız ilk hərfi böyük olan ad (Aysel), 2) addakı hərflərin sayı, 3) adın ilk üç hərfi böyük hərflərlə.
raw = ' aYSEL '
# 1) name = raw without spaces, in title case
# 2) print name, its length and its first 3 letters in capitals▸ Gözlənilən nəticə
Aysel 5 AYS
Qəbzin bir sətrini f-sətirlə qur: məhsulun adı böyük hərflərlə, qiymət və ümumi məbləğ isə nöqtədən sonra düz iki rəqəmlə (:.2f) göstərilsin. Nəticə belə olmalıdır: NOTEBOOK: 4 x 1.35 = 5.40 AZN. Ümumi məbləği qty * unit_price kimi hesabla.
item = 'Notebook'
qty = 4
unit_price = 1.35
# total = ...
# print the receipt line with an f-string▸ Gözlənilən nəticə
NOTEBOOK: 4 x 1.35 = 5.40 AZN
Əsas fikirlər
- Sətir dırnaq içində simvollar ardıcıllığıdır:
+birləşdirir,*təkrarlayır,len()uzunluğu verir. - İndekslər 0-dan başlayır,
[-1]isə sonuncu simvoldur. [start:end]kəsiyində son indeks daxil deyil.- Metodlar (
upper,strip,replacevə s.) yeni sətir qaytarır, köhnəsini dəyişmir. - f-sətirdə
{}içindəki ifadə hesablanıb mətnə qoyulur;{x:.2f}kəsr hissəsində 2 rəqəm göstərir.
Özünü yoxla
10 sual. Hər düzgün cavab XP qazandırır.
s = 'Python' olarsa, s[1] nəyə bərabərdir?