10.5-кесте:
Сәйкестендіру операторлары
63
Оператор
Анықтамасы
Мысал
and
Екі мәннің екеуі де
True
болған жағдайда
True
қайтарады, әйтпесе
False
қайтарады
x < 5 and x < 10
or
Екі мәннің біреуі
True
болған жағдайда
True
қайтарады, әйтпесе
False
қайтарады
x < 5 or x < 4
not
Егер мән
True
болса,
False
қайтарады, ал
егер мән
False
болса,
онда
True
қайтарады
not(x < 5 and x < 10)
Оператор
Аны
қ
тамасы
Мысал
is
Екі объект те бірдей
болса
True
, әйтпесе
False
қайтарады
x is y
is not
Екі обьект екі түрлі болса
False
, әйтпесе
True
қайтарады
x is not y
Синтаксис
Синтаксис
11
Тізбек
11.1. Тізбектер
Тізбектер бірнеше мәнді бір айнымалыда сақтап тұрады. Мысалы, бізде мынадай
айнымалылар бар делік.
car1 = "Ford"
car2 = "Volvo"
car3 = "BMW"
Бұл айнымалылардың саны — үшеу. Ал егер бізде мың мән болса, онда біз мың
айнымалыны жариялауымыз керек пе? Жоқ. Мұндай жағдайда тізбектерді
қолдануымызға болады. Тізбектер бірнеше мәнді бір айнымалыда сақтап тұруға
мүмкіндік береді. Жоғарыдағы мысал үшін үш түрлі айнымалыны жарияламай, тек бір
ғана тізбекті былайша жариялауымызға болады:
cars = ["Ford", "Volvo", "BMW"]
.
Тізбектер тік жақшалардың көмегімен жарияланады. Тік жақшаның ішіне тізбек
мүшелерін үтір арқылы жазамыз. Тізбектің әр мүшесіне қол жеткізу үшін сол тізбектің
атауын кейін тік жақшаның ішінде сол элементтің индексін жазамыз. Индекс нөлден
басталады. Мысалы, жоғардағы мысал үшін бірінші элементке қол жеткізу үшін
cars[0]
, екінші элементке қол жеткізу үшін
cars[1]
және үшінші элементке қол жеткізу
үшін
cars[2]
деп жазамыз. Яғни жалпы жағдай үшін
n
-ші элементке қол жеткізу үшін
(n - 1)
-ші индексті көрсету қажет.
11.2. Тізбектің ұзындығы
Тізбектің ұзындығын табу үшін
len()
функциясы қолданылады. Жоғардағы мысал үшін
cars
тізбегінің ұзындығын қайтару үшін
len(cars)
деп жазу керек. Мұндағы
len(cars)
үш мәнін қайтарады, себебі тізбекте үш элемент бар.
11.3. Тізбекке элементті қосу және тізбектен
элементті өшіру
Тізбекке элементті қосу үшін
append()
функциясы қолданылады. Яғни тізбекке қандай
да бір элементті қосу үшін алдымен сол тізбектің атауын, одан кейін нүктені, нүктеден
кейін
append
кілтті сөзі, сосын ашылған және жабылған жақша ішіне бізге керекті
элементті жазу керек. Жоғардағы мысал үшін
“Honda”
дейтін жаңа элементті қосайық.
Мысал 11.1:
cars.append("Honda")
print(cars)
____________________________________________________________________________________________
Экранға шығатын мән:
['Ford', 'Volvo', 'BMW', 'Honda']
Тізбектен элементті өшіру үшін
pop()
немесе
remove()
функциялары қолданылады.
pop()
функциясында элементтің индексін беру керек болса, ал
remove()
функциясында элементтің мәнін беру керек болады. Жоғарыдағы мысал үшін элементті
pop()
және
remove()
функциялары арқылы екінші
“Volvo”
элементін өшірейік.
67
Мысал 11.2:
cars.append("Honda")
print(cars)
cars.pop(1)
____________________________________________________________________________________________
Экранға шығатын мән:
['Ford', 'BMW', 'Honda']
Мысал 11.3:
cars.append("Honda")
print(cars)
cars.remove(“Volvo”)
____________________________________________________________________________________________
Экранға шығатын мән:
['Ford', 'BMW', 'Honda']
pop()
функциясында екінші элементтің индексін берсек (1 саны), ал
remove()
функциясында өшіретін элементтің мәнін, яғни
“Volvo”
деп жаздық.
68
Синтаксис
12
Шартты
оператор
Қандай да бір шартты тексеру үшін шартты оператор қолданылады. Шартты
оператордың жиі кезедесетіні
if else
операторы. Төменде
if else
операторын жан-
жақты түсіндірейік.
12.1. If else
12.1.1. If
if else
операторындағы
if
“егер” деген мағынаны білдіреді. Яғни белгілі бір шартты
тексеру үшін
if
(“егер”) кілтті сөзін қолданамыз.
if
сөзінен кейін логикалық тип
True
немесе
False
мәндеріне тексеріледі. Логикалық тип тексерілгеннен кейін (
True
мәніне
тең немесе тең емес екенін анықтағаннан кейін) қос нүкте символы (:) қойылады. Егер
логикалық тип
True
мәнін қайтарса, онда қос нүктеден кейінгі амалдар жиынтығы
орындалады. Толық жазылу жолы мынадай:
___________________________________________________________________________________
if
логикалық
тип
:
#
мұндағы
логикалық
тип
True
немес
False
мəнін
қайтарады
қандай
да
бір
операция
жиынтығы
#
логикалық
тип
True-
ге
тең
болған
жағдайда
ғана
орындалады
___________________________________________________________________________________
Мысал 12.1:
hour = 12
if hour < 12:
print(“Good morning”)
____________________________________________________________________________________________
Экранға шығатын мән:
Good morning
if
-тен кейінгі тұжырым келесі жолдан бастап және tab батырмасын басу арқылы
жазылуы керек.
12.1.2. If else
if
оператырындағы логикалық тип
False
мәніне тең болса, онда қос нүктеден кейінгі
амалдар орындалмайды. Егер логикалық тип
False
мәнін қайтарғанда қандай да бір
амалдар орындалу үшін
else
тұжырымы қолданылады.
else
ағылшынша “әйтпесе” -
деген мағынаны білдіреді.
else
тұжырымынан кейін қос нүкте қоюлуы қажет.
if else
тұжырымының жазылуы мынадай:
___________________________________________________________________________________
if
логикалық
тип
:
#
мұндағы
логикалық
тип
True
немес
False
мəнін
қайтарады
.
қандай
да
бір
операция
жиынтығы
#
логикалық
тип
True-
ге
тең
болған
жағдайда
ғана
орындалады
else:
қандай
да
бір
операция
жиынтығы
#
логикалық
тип
False-
қа
тең
болған
жағдайда
ғана
орындалады
___________________________________________________________________________________
71
Мысал 12.2:
hour = 15
if hour < 12:
print(“Good morning”)
else:
print(“Good afternoon”)
____________________________________________________________________________________________
Экранға шығатын мән:
Good afternoon
12.1.3. Elif
Бірақ, егер сағат 20-ға тең болса (
hour = 20
), онда “Good afternoon” (“Қайырлы күн”)
мәтінін шығару дұрыс болмайды. Мұндай жағдайда “Good evening” (“Қайырлы кеш”)
деген мәтінді шығарып алу керек. Ондай бағдарлама жазып шығару үшін
elif
тұжырымы қолданылады.
elif
тұжырымы
else if
тұжырымының қысқашасын
білдіреді.
elif
тұжырымынан кейін логикалық операторды жазып, одан кейін қос нүкте
қою қажет.
elif
тұжырымын қолданып жоғарыдағы бағдарламаны жазып шығайық.
Мысал 12.3:
hour = 20
if hour < 12:
print(“Good morning”)
elif hour >= 12 and hour < 18:
print(“Good afternoon”)
else:
print(“Good evening”)
____________________________________________________________________________________________
Экранға шығатын мән:
Good evening
Жоғарыдағы мысалда, егер сағат 12-ден кіші болса (
if hour < 12
), онда экранға
“Good morning” (“Қайырлы таң”) деген мәтін шығарамыз. Ал егер сағат (
hour
) 12-мен 18-
дің арасында болса (
elif hour >= 12 and hour < 18
), онда экранға “Good afternoon”
(“Қайырлы күн”) деген мәтінді шығарамыз. Егер осы екі жағдай да орындалмаса (
else
),
онда экранға “Good evening” (“Қайырлы кеш”) деген мәтінді шығарамыз. Бір
бағдарламада бірнеше
elif
тұжырымын жазуға да болады, мысалы:
if
…
:
…
elif:
…
elif:
…
elif:
…
elif:
…
72
12.2. Логикалық оператор
12.2.1. Қарапайым логикалық оператор
Қарапайым логикалық операторлар қандай да бір екі мәнді тексеру арқылы жүзеге
асады. Бұл қарапайым логикалық операторлар төмендегідей болуы мүмкін:
●
Теңдік:
a == b
(
a
-ның мәні
b
-ның мәніне тең болса
True
, әйтпесе
False
қайтарады)
●
Теңсіздік:
a != b
(
a
-ның мәні
b
-ның мәніне тең болмаса
True
, әйтпесе
False
қайтарады)
●
Кіші:
a < b
(
a
-ның мәні
b
-ның мәнінен кіші болса
True
, әйтпесе
False
қайтарады)
●
Кіші немесе тең:
a <= b
(
a
-ның мәні
b
-ның мәнінен кіші немесе тең болса
True
,
әйтпесе
False
қайтарады)
●
Үлкен:
a > b
(
a
-ның мәні
b
-ның мәнінен үлкен болса
True
, әйтпесе
False
қайтарады)
●
Үлкен немесе тең:
a >= b
(
a
-ның мәні
b
-ның мәнінен үлкен немесе тең болса
True
, әйтпесе
False
қайтарады)
Осы логикалық операторларды
if
немесе
elif
тұжырымынан кейін жаза аламыз.
Бірақ, қарапайым логикалық операторлардан басқа, күрделі логикалық
операторларды да жазуға болады.
12.2.2. Күрделі логикалық оператор
Күрделі логикалық операторлар бірнеше қарапайым логикалық операторлардың
жиынтығынан тұрады. Ол қарапайым операторлар
and
,
or
және
not
кілтті сөздері
арқылы бірігуі мүмкін. Бұл кілтті сөздер төмендегі логикалық тұжырымдарды білдіреді:
●
a and b
— егер
a
және
b
тұжырымының екеуі де
True
-ға тең болса, онда (
a and
b
) да
True
-ға тең, әйтпесе (
a and b
) тұжырымы
False
-қа тең болады.
and
—
ағылшынша “және” дегенді білдіреді.
●
a or b
— егер
a
және
b
тұжырымының біреуі
True
-ға тең болса, онда (
a or b
) да
True
-ға тең, әйтпесе (
a or b
) тұжырымы
False
-қа тең болады.
or
— ағылшынша
“немесе” дегенді білдіреді.
●
not a
— егер
a
-ның мәні
True
-ға тең болса, онда (
not a
) тұжырымы
False
-қа
тең, әйтпесе, егер
a
-ның мәні
False
-қа тең болса, онда (
not a
) тұжырымы
True
-ға
тең.
not
- ағылшынша “жоқ, болдырмау” деген мағынада қолданылады.
Мысал 12.4:
if A == 1 AND B != 2 AND C >= 3:
print(“A
мəні
1-
ге
тең
, B
мəні
2-
ге
тең
емес
, C
мəні
3-
тен
үлкен
немесе
тең
”)
12.3. Бірінің ішіне салынған шартты оператор
if
тұжырымы бірінің ішіне кіріп жазыла алады. Бірінің ішіне салынған
if
тұжырымын
түсіндіру үшін келесі мысалға көз жүгіртейік. Бізге
a
саны берілсін. Егер бұл сан 10-нан
үлкен болса, экранға “10-нан үлкен” деген мәтінді шығару керек. Ал егер
a
саны 20-дан
да үлкен болса, онда экранға қосымша “20-дан да үлкен” деген мәтін шығару керек. Ал
егер
a
саны 10-нан кіші болса, онда экранға “10-нан кіші” деген мәтін шығару керек.
Енді осы мысалды Python тілі арқылы жазып шығайық.
73
Мысал 12.5:
a = 25
if a > 10:
print(“10-
нан
үлкен
”)
if > 20:
print(“20-
дан
да
үлкен
”)
else:
print(“10-
нан
кіші
”)
____________________________________________________________________________________________
Экранға шығатын мән:
10-
нан
үлкен
20-
дан
да
үлкен
Осылайша
if
тұжырымын бірінің ішіне бірнеше рет салып жазуға болады.
Мысал 12.6:
if
логикалық
амал
:
if
логикалық
амал
:
if
логикалық
амал
:
if
логикалық
амал
:
…
12.4. Қысқартылған if тұжырымы
if
тұжырымын қысқартып былайша жазуға да болады:
___________________________________________________________________________________
if
логикалық
тұжырым
:
орындалатын
амал
___________________________________________________________________________________
Яғни орындалатын амал келесі жолда емес, бірақ сол жолда қос нүктеден кейін
жазылады. Сонымен қатар
if else
тұжырымын кысқартып былайша да жазуға
болады:
___________________________________________________________________________________
орындалатын
амал
: if
логикалық
тұжырым
else
орындалатын
басқа
амал
___________________________________________________________________________________
74
Синтаксис
13
For
циклі
Адамның компьютерден айырмашылығы — адам қандай да бір іс-әрекетті бұлжытпай
және тоқтамастан орындай алмайды. Ал, компьютер сол іс-әрекетті тоқтамастан, ұзақ
уақыт бойы орындай алатын қабілетке ие. Осындай іс-әрекетті тоқтамастан жасау үшін
цикл түсінігі қолданылады. Python бағдарламалау тілінде циклдің екі түрі бар. Бірі —
for
циклі, екіншісі —
while
циклі. Алдымен
for
циклін түсіндіруден бастайық.
13.1. For циклі
Бізге, мысалы мынадай тізбек берілсін. Бұл тізбекте барлық элементтерді экранға
шығару керек делік. Қарапайым шығару жолы төмендегідей болады:
Мысал 13.1:
fruits = [“apple”, “banana”, “cherry”, “blue berry”]
print(fruits[0])
print(fruits[1])
print(fruits[2])
print(fruits[3])
____________________________________________________________________________________________
Экранға шығатын мән:
apple
banana
cherry
blue berry
Бұл бағдарламаны жазып шығу үшін 5 жол кетті. Ал тізбекте 10000 элемент болса, онда
10000 жолдан тұратын код жазу керек пе? Жоқ. Ондай жағдайда
for
циклін
қолдансақ болады.
for
циклі арқылы код былайша жазылады.
Мысал 13.1 (жалғасы):
fruits = [“apple”, “banana”, “cherry”, “blue berry”]
for x in fruits:
print(x)
____________________________________________________________________________________________
Экранға шығатын мән:
apple
banana
cherry
blue berry
for
тұжырымын қолданғанда алдымен
for
кілтті сөзін жазып, содан кейін кез келген
айнымалыны жариялаймыз. Бұдан соң
in
кілтті сөзін жазып, одан кейін біздегі бар
тізбекті жазамыз.
for
тұжырымынан соң қайталанатын операциялар жиынтығын жазу
керек. Жалпы жазылу жолы төмендегідей:
___________________________________________________________________________________
for
қандай
да
бір
айнымалы
in
тізбек
:
операция
жиынтығы
___________________________________________________________________________________
77
Python тіліндегі басқа тұжырымдар сияқты
for
циклінен кейін қос нүкте қою керек.
13.2. Break тұжырымы
Циклдің қандай да бір қадамынан шығу үшін
break
тұжырымы қолданылады.
break
тұжырымын түсіну үшін мына мысалға назар аударайық:
Мысал 13.2:
fruits = [“apple”, “banana”, “cherry”, “blue berry”]
for x in fruits:
if x == “banana”:
break
print(x)
____________________________________________________________________________________________
Экранға шығатын мән:
apple
Алдымен
for
циклі арқылы тізбектің әр элементі бойынша жүгіріп шығамыз. Әр
қадамда сол элемент
“banana”
-ға тең немесе тең емес екеінін
if
тұжырымы арқылы
тексереміз. Егер тең болған жағдайда
break
кілтті сөзі арқылы
for
циклінен шығамыз.
Циклдан шығу дегеніміз — ары қарай цикл қадамдарын орындамауды білдіреді. Сол
себепті
apple
-дан кейін
banana, cherry, blue berry
атты элементтер экранға
шықпады.
13.3. Continue тұжырымы
Циклдің қандай да бір қадамын орындамау үшін
continue
тұжырымы қолданылады.
continue
тұжырымын түсіндіру үшін мына мысалды қарастырайық:
Мысал 13.2:
fruits = [“apple”, “banana”, “cherry”, “blue berry”]
for x in fruits:
if x == “banana”:
continue
print(x)
____________________________________________________________________________________________
Экранға шығатын мән:
apple
cherry
blue berry
Мұнда әр қадамымызда жүгіріліп жатқан элементті
banana
мәнімен салыстырамыз.
Егер ол элемент
banana
-ға тең болса, онда ары қарай орындалуға тиісті амалдарды
орындамай,
for
циклінің келесі қадамына көшеміз. Сол себепті жоғарыдағы мысалда
banana
мәнін экранға шығару амалын секіріп, келесі қадамдарға көшеміз де, сол
элементтерді экранға шығардық.
78
13.4. Range тұжырымы
for
циклінде қадамдарды өзгерту үшін
range
тұжырымы қолданылады.
range
тұжырымы мынадай параметрлерді қабылдай алуы мүмкін. Біріншісі — қадамның
бастапқы мәні, екіншісі — соңғы мәні және үшіншісі — қадамның мәні. Бұл мәндерді
мына мысалмен түсіндірейік.
Мысал 13.4:
for x in range(2, 10, 2):
print(x)
____________________________________________________________________________________________
Экранға шығатын мән:
2
4
6
8
10
Бұл бағдарламада экранға 2-ден 10-ға дейінгі тек жұп сандар шығады. Себебі,
бастапқы параметрді 2-ге, екінші параметрді 10-ға және үшінші параметрді 2-ге
теңедік. Бастапқы параметр — бастау мәнін, екінші параметр — аяқталу мәнін және
үшінші параметр қадам мәнін білдіреді. Егер қадам мәнін жазбасақ, онда ол 1-ге
теңеледі. Ал егер бастапқы мәнді жазбасақ, онда ол 0-ге теңеледі. Мысалы:
Мысал 13.5:
for x in range(5):
print(x)
____________________________________________________________________________________________
Экранға шығатын мән:
0
1
2
3
4
Яғни экранға 0-ден 5-ке дейінгі сандар шықты.
13.5. Бірінің ішіне салынған for циклі
if
тұжырымы сияқты
for
тұжырымы да бірінің ішіне салына алады. Мұндай жағдайды
түсіндіру үшін мына мысалға назар аударайық
Мысал 13.6:
adj = ["red", "big", "tasty"]
fruits = ["apple", "banana", "cherry"]
for x in adj:
for y in fruits:
print(x, y)
79
____________________________________________________________________________________
Экранға шығатын мәндер:
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
Бұл жағдайда алдымен
adj
тізбегі бойынша жүгіреміз. Кейін
adj
тізбегінің әр элементі
үшін
fruits
тізбегі арқылы жүгіреміз. Бұл бірінің ішіне салынған циклдер қадамдары
мына төмендегі кестеде түсіндірілген.
Достарыңызбен бөлісу: |