Məzmuna keç
Educora
Başlanğıc15 dəq3 / 42

Sətirlər və f-sətirlər

Mətnlərlə işləməyi öyrən: birləşdirmə, indekslər, kəsiklər, faydalı metodlar və f-sətirlərlə şablonlar.

Özünü yoxla
Bu dərsdə öyrənəcəksən
  • 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.

Python
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.

Python
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.

SimvolPython
İndeks012345
Mənfi indeks-6-5-4-3-2-1
'Python' sətrində indekslər

Kə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.

Python
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:

MetodNə edirNü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
Python
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.

Python
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:

Python
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.

Tapşırıq

İ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ə.

Tapşırıq · Python
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
Tapşırıq

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.

Tapşırıq · Python
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, replace və 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.

1 / 10
s = 'Python' olarsa, s[1] nəyə bərabərdir?