Лекция · 3.5

Символдық жолдармен жұмыс

Атыңды, мекенжайыңды, WhatsApp хабарламаңды — компьютер бәрін мәтін ретінде сақтайды. Ал мәтінмен ЖҰМЫС ІСТЕУ (бір бөлігін алу, өзгерту, салыстыру) деген нақты қандай ережелермен жүреді? Бүгін Python-дағы жолдармен (string) жұмыстың негіздерін үйренеміз — бұл кез келген нақты бағдарламаның (тіркелу формасынан бастап чат-ботқа дейін) құрамдас бөлігі.

Жол жариялау және escape тізбектері
Анықтама
Символдық жол (string) — жадының көрші ұяшықтарында орналасқан символдар тізбегі. Python-да str типімен беріледі, ұзындығына шектеу жоқ (жад көлемінен басқа).

Мәтінді бір немесе екі тырнақшаға алса, Python оны жол ретінде таниды: 'hello' немесе "Welcome" — екеуі де бірдей жұмыс істейді. Көп жолды мәтін үшін ҮШ тырнақша қолданылады: '''Bul ote uzyn jol'''.

Ал егер жолдың ІШІНДЕ тырнақша таңбасының өзін жазу керек болса ше? Мұнда арнайы «қашу (escape) тізбегі» көмекке келеді:

Escape тізбегіМағынасы
\nЖаңа жолға өту
\tТабуляция белгісі
\\Солға қарай көлбеу сызық
\'Бір тырнақша символы
\"Қос тырнақша символы
Индексация және бөліктер (срез)

Жолдың әрбір символының өз «нөмірі» (индексі) бар, ол 0-ден басталады. Мысалы, s = 'Def Python' дегенде s[0]'D', s[2]'f'. Ал теріс индекс жолдың СОҢЫНАН санайды: s[-1] — соңғы символ.

Жолдың бір бөлігін алу үшін «срез» (slice) қолданылады — s[i:j:k]: i-ден j-ге дейін (j кірмейді), k қадаммен.

ЖазылуыНәтижесі («Python programming» үшін)
s[7:11]'prog'
s[:3]'Pyt' (0-ден 3-ке дейін)
s[::2]Әр екінші символ
s[::-1]Кері ретпен: 'gnimmargorp nohtyP'
s[:-1]Соңғы символсыз
Есеп (орта): сөздерді бөлек шығару

Берілді: s = 'Qazaqstan Respublikasy' жолы.

Табу керек: «Qazaqstan» және «Respublika» сөздерін бөлек шығару, ұзындығымен қоса.

s = 'Qazaqstan Respublikasy'
print(s[0:9], len(s[0:9]))
print(s[10:19], len(s[10:19]))

Жауабы: Qazaqstan 9, Respublika 10

Есеп (орта): жасты бір жасқа арттыру

Берілді: 'Асхат 16' жолы (аты мен жасы).

s = 'Асхат 16'
a = s[0:5]
t = int(s[6:8])
print(a, int(t) + 1)

Жауабы: Асхат 17

Жолдың ұзындығын білу үшін len() функциясы қолданылады: len('информатика')11.

Өзгермейтіндік және салыстыру
🔒
Маңызды ерекшелік: Python-да жолдар ӨЗГЕРМЕЙТІН (immutable) тип. Жолдағы жеке символды тікелей өзгертуге тырыссаң — қате аласың:
>>> s = 'Move'
>>> s[0] = 'L'
TypeError: 'str' object does not support item assignment

Жолды «өзгерту» керек болса, ЕСКІ жолдың бөліктерінен ЖАҢА жол құрастыру керек (мыс. s = 'L' + s[1:]).

Жолдарды салыстыру да ерекше: == — барлық символ ТЕҢ болса ғана шын, ол РЕГИСТРГЕ СЕЗІМТАЛ (яғни «Informatics» мен «informatics» — ЕКІ БӨЛЕК жол). Ал <, > операторлары символдардың коды (алфавиттік реті) бойынша салыстырады.

s1 = 'Organ'
s2 = 'Orkestr'
s1 > s2  # False, өйткені 'g' коды 'k' кодынан кем
Есеп (қиын): сұхбат-программа

Берілді: пайдаланушы «есімде жоқ» деп жауап берсе, программа МЕРЗІМІНЕН БҰРЫН тоқтауы керек.

Қалай тоқтатамыз? sys модуліндегі exit() командасы программаны кез келген жерде дереу аяқтайды.

import sys
print('Olen saiysy')
answer = input()
if answer == 'esimde joq':
    print('Keshirim. Kelesi joly jalgastyrasyn.')
    sys.exit()
print('Ogan kaigy jeseniz')

Жауабы: пайдаланушы дәл «esimde joq» деп жазса, программа sys.exit() арқылы бірден тоқтайды.

Тип түрлендіру және % форматтау

Жол мен санды бір-біріне түрлендіру жиі керек болады:

ФункцияМысал
str()str(985)'985' (санды жолға)
int()int('253')253 (жолды санға)
ord()ord('B')66 (символ коды)
chr()chr(66)'B' (код бойынша символ)
max() / min()Жолдағы ЕҢ ҮЛКЕН/КІШІ кодты символды қайтарады

Мәтінді форматтаудың ескірек, бірақ әлі кездесетін тәсілі — % операторы:

s = 'Hello %s' % 'word'             # 'Hello word'
s = 'one %d %f' % (2, 3.5)          # 'one 2 3.500000'
КодМәні
%sЖолдық
%d, %iБүтін ондық
%fЖылжымалы үтір (ондық)
%xОналтылық
%%«%» таңбасының өзі
🎯 ҰБТ байланысы
Жолдардың индексациясы мен өзгермейтіндігі — Python есептерінде жиі тексерілетін тақырып.
1
Индекс 0-ден басталады, срезде соңғы шек (j) КІРМЕЙДІ.
2
Жолдар ӨЗГЕРМЕЙТІН — s[0]='L' секілді тікелей өзгерту қате береді.
3
Жол салыстыру РЕГИСТРГЕ СЕЗІМТАЛ, == мен </> код бойынша жұмыс істейді.
Сабақ қорытындысы
  • Жол (string) — символдар тізбегі, Python-да str типімен беріледі, өзгермейтін (immutable).
  • Индексация 0-ден басталады; срез s[i:j:k] арқылы жолдың кез келген бөлігін алуға болады.
  • Салыстыру регистрге сезімтал, </> символ коды бойынша жұмыс істейді.
  • str(), int(), ord(), chr() — тип түрлендіру функциялары; % операторы — жолды форматтау тәсілі.