- Müqayisə əməllərinin və sətir müqayisəsinin nəticəsini (
True/False) müəyyən etmək. - Tam və natamam şərt operatorunu,
elifzəncirini və iç-içə şərtləri yazmaq və hansı budağın icra olunduğunu izləmək. and,or,notilə mürəkkəb şərtləri prioritetə uyğun hesablamaq.- Qalıq şərtləri (
n % k) ilə dövri naxış məsələlərini həll edən proqram yazmaq.
Bankomat PIN kodu düzgün yığılanda pul verir, səhv yığılanda xəbərdarlıq edir; svetoforda yaşıl işıqda keçirik, qırmızıda dayanırıq. Proqram da vəziyyətə görə seçim etməlidir. Blok-sxemdə bu, romb fiquru ilə göstərilən budaqlanmadır (bax: «Alqoritmlər və blok-sxemlər» və «Budaqlanan alqoritmlər»), Python-da isə şərt operatoru if ilə yazılır. DİM-in 2025–2026-cı illərdəki hər variantında «Şərt operatoru» mövzusuna 2–3 tapşırıq düşüb, bəzən onlardan biri yazılı proqram olub.
Müqayisə əməlləri: şərt nə vaxt doğrudur?
Şərt qiyməti True (doğru) və ya False (yalan) olan ifadədir. Ən sadə şərtlər müqayisə əməlləri ilə qurulur. Diqqət: bərabərlik iki bərabərlik işarəsi ilə yazılır — ==, çünki tək = mənimsətmədir.
| Əməl | Mənası | Nümunə |
|---|---|---|
== | bərabərdir | 7 == 7 → True |
!= | bərabər deyil | 7 != 7 → False |
< > | kiçikdir, böyükdür | 3 > 8 → False |
<= >= | kiçik və ya bərabər, böyük və ya bərabər | 8 >= 8 → True |
Sətirlər simvol-simvol, simvolların kodlarına görə müqayisə olunur — lüğətdəki sözlər kimi: 'apple' < 'apricot' doğrudur, çünki üçüncü simvolda p hərfi r-dən əvvəl gəlir. Böyük hərflərin kodları kiçik hərflərinkindən kiçikdir, ona görə 'Z' < 'a' də doğrudur. Rəqəmlərdən ibarət sətirlər də simvol-simvol müqayisə olunur: '10' < '9' doğrudur ('1' < '9'), halbuki 10 > 9. Ədəd isə sətirlə heç vaxt bərabər olmur: 5 == '5' → False. Python ikiqat bərabərsizliyə də icazə verir: 10 <= n <= 99 yazılışı «n ikirəqəmli ədəddir» deməkdir.
Şərtin qiyməti adi qiymətdir: onu çap etmək (print(7 > 3) → True) və dəyişənə yazmaq olar: even = n % 2 == 0. Burada əvvəl n % 2 == 0 müqayisəsi hesablanır, sonra True və ya False even dəyişəninə mənimsədilir; sonra sadəcə if even: yazmaq kifayətdir. Uzun şərtləri belə hissələrə bölmək proqramı oxunaqlı edir.
Tam və natamam şərt operatoru
Natamam şərt operatoru yalnız if hissəsindən ibarətdir: şərt doğrudursa, blok icra olunur, yalandırsa, heç nə edilmir. Tam şərt operatoru if … else şəklindədir: iki budaqdan mütləq biri icra olunur — şərt doğru olduqda if-in bloku, yalan olduqda else-in bloku.
Yazılış qaydaları: şərtdən sonra iki nöqtə (:) qoyulur, budağın əmrləri isə girinti ilə — adətən 4 boşluqla — yazılır. Eyni girintili ardıcıl sətirlər bir blok təşkil edir: girinti bitdisə, blok da bitib. else öz if-i ilə eyni girintidə yazılır. Şərt operatorundan sonra girintisiz gələn əmrlər hər iki halda icra olunur.
n = 38
if n % 5 == 3:
print(n // 5)
else:
print(n % 5)
print('end')▸ Gözlənilən nəticə
7 end
38 // 5 = 7 çap olunur. print('end') girintisiz olduğu üçün hər halda icra olunur. n = 41 yazıb yenidən işə sal: bu dəfə else budağı işləyəcək.x = 12
y = 5
if x % y == 2:
y = x * 2
print(x, y)
x = y - x
y = y + 1
print(x, y)▸ Gözlənilən nəticə
12 24 12 25
Yuxarıdakı proqram nə çap edəcək? Hər iki sətri yazın.
Həllini göstərHəllini gizlət
y = 12 · 2 = 24;
print(x, y) → 12 24; x = 24 − 12 = 12.Blokdan sonra girintisiz əmrlər: y = 24 + 1 = 25;
print(x, y) → 12 25.Cavab iki sətirdir: 12 24 və 12 25. Tələ: girintisiz
y = y + 1-i ilkin y = 5 ilə hesablayan «12 6» yazır.elif zənciri və iç-içə şərtlər
İkidən çox seçim olanda elif («else if» — «əks halda, əgər») işlədilir. Şərtlər yuxarıdan aşağı yoxlanır; ilk doğru şərtin budağı icra olunur və zəncirin qalan hissəsi keçilir — sonrakı şərtlər doğru olsa belə. Heç bir şərt doğru deyilsə, sondakı else icra olunur (o yoxdursa, heç nə edilmir). Buna görə şərtlərin sırası vacibdir: if n > 10 əvvəl, elif n > 100 sonra yazılsa, ikinci budaq heç vaxt işləməz.
if … elif … else zənciri: şərtlər yuxarıdan aşağı yoxlanır, ilk doğru şərtin budağı icra olunur, sonra proqram zəncirdən sonrakı əmrə keçir.s = 'k'
b = 'm'
if s == b:
print('A')
elif s < b:
print('B')
elif s == 'k':
print('C')
else:
print('D')▸ Gözlənilən nəticə
B
s = input() olur.Klaviaturadan k hərfi daxil edilərsə, yuxarıdakı proqram nə çap edər?
A) A B) B C) C D) D E) heç nə
Həllini göstərHəllini gizlət
s == b → 'k' == 'm' ✗.s < b → 'k' < 'm' ✓ (əlifbada k hərfi m-dən əvvəldir) → B çap olunur.Zəncirin qalanı yoxlanmır, halbuki
s == 'k' də doğru idi. Cavab: B.Budağın içində başqa şərt operatoru da ola bilər — bu, iç-içə şərtdir. Daxili if yalnız xarici şərt doğru olanda yoxlanır. Hansı else-in hansı if-ə aid olduğunu yalnız girinti müəyyən edir: else özü ilə eyni girintidə yazılmış ən yaxın yuxarıdakı if-ə aiddir. İmtahan proqramlarında şərtlər tez-tez 2–3 səviyyə dərinlikdə olur, ona görə izləməni sistemli apar.
- 1İlkin qiymətləri yaz
Dəyişənləri və onların ilkin qiymətlərini (giriş qiymətləri daxil) cədvələ köçür.
- 2Şərti hesabla: ✓ və ya ✗
Şərtdəki ifadəni cari qiymətlərlə hesabla və yanına ✓ (doğru) və ya ✗ (yalan) yaz.
- 3✗ olsa, bloku keç
Girintisi daha böyük olan bütün sətirləri keç və eyni girintidəki
elif/else-ə, o yoxdursa, blokdan sonrakı sətrə get. - 4✓ olsa, bloka gir
Əmrləri icra et, dəyişənləri yenilə, daxili şərtlər üçün 2–3-cü addımları təkrarla. Budaq icra olundusa, həmin zəncirin qalan
elif/else-ləri keçilir. - 5Sonrakı əmrləri unutma
Şərt operatorundan sonrakı girintisiz sətirlər həmişə icra olunur — cavab çox vaxt məhz orada alınır.
a = 36
b = 14
if a % b > 5:
a = a - b
if a > 2 * b:
b = b + 3
else:
b = b - 3
if b % 2 == 1:
a = a + 1
else:
a = a + b
print(a + b, a - b)▸ Gözlənilən nəticə
34 12
Yuxarıdakı proqramın nəticəsini müəyyən edin.
A) 39 5 B) 33 11 C) 34 12 D) 58 14 E) 22 11
Həllini göstərHəllini gizlət
2) a > 2 · b → 22 > 28 ✗ →
else budağı: b = 14 − 3 = 11.3) Daxili şərt: b % 2 == 1 → 11 % 2 = 1 ✓ → a = 22 + 1 = 23.
4) Xarici
else keçilir. print(a + b, a - b) → 23 + 11 = 34, 23 − 11 = 12.Cavab: C) 34 12. B variantı daxili
if-i unudanlara (a = 22, b = 11), A isə səhv budaq seçənlərə (b = 17) aiddir.Mürəkkəb şərtlər: and, or, not
Bir neçə şərt məntiq əməlləri ilə birləşdirilir: and (və) hər iki şərt doğru olanda doğrudur; or (və ya) ən azı biri doğru olanda doğrudur; not (deyil) şərtin qiymətini tərsinə çevirir. Bunlar «Məntiq əməliyyatları və məntiq elementləri» dərsindəki konyunksiya, dizyunksiya və inversiyadır.
| A | B | A and B | A or B | not A |
|---|---|---|---|---|
True | True | True | True | False |
True | False | False | True | False |
False | True | False | True | True |
False | False | False | False | True |
Prioritet soldan sağa azalır: əvvəl hesab əməlləri, sonra müqayisələr, sonra not, and və ən axırda or. Şübhə olanda mötərizə qoy — proqram həm düzgün, həm də oxunaqlı olur.
Aralıqlar üçün hazır qəliblər: x-in [10; 20] parçasında olması — 10 <= x <= 20 (yəni x >= 10 and x <= 20); parçadan kənarda olması — x < 10 or x > 20, bu da not (10 <= x <= 20) ilə eynidir. Diqqət et: «kənarda» şərtində and yazmaq səhvdir — heç bir ədəd eyni vaxtda həm 10-dan kiçik, həm də 20-dən böyük ola bilməz, belə şərt həmişə yalandır.
x = 7, y = 2 olduqda hesablayın: 1) x > 5 or y > 3 and x < 0; 2) not x > 5 and y == 2; 3) (x > 5 or y > 3) and x < 0.
Həllini göstərHəllini gizlət
and: y > 3 and x < 0 → ✗ and ✗ = False; sonra x > 5 or False → ✓ or ✗ = True.2)
not müqayisədən sonra, and-dən əvvəl icra olunur: not (7 > 5) = not True = False; False and … = False.3) Mötərizə əvvəl:
x > 5 or y > 3 = True; True and x < 0 = ✓ and ✗ = False.1-ci və 3-cü ifadələr yalnız mötərizə ilə fərqlənir, nəticələri isə əksdir.
Proqram 10 dəfə ardıcıl icra olunur və hər dəfə klaviaturadan (s, t) cütü daxil edilir: (9, 4); (9, 6); (2, 5); (−1, 3); (8, 8); (0, 0); (12, 9); (−5, −5); (7, 1); (10, 11). Neçə dəfə Yes çap olunar? (DİM tapşırıqlarında adətən «Bəli» / «Xeyr» sözləri çap olunur.)s = int(input())t = int(input())if s >= 8 and t % 3 != 0 or s < 0: print('Yes')else: print('No')
Həllini göstərHəllini gizlət
and or-dan əvvəl icra olunduğu üçün şərt belə oxunur: (s >= 8 and t % 3 != 0) or s < 0.• s < 0 olan cütlər dərhal
Yes verir: (−1, 3), (−5, −5) — 2 cüt.• Qalanlarda s ≥ 8 olmalı və t 3-ə bölünməməlidir: (9, 4) ✓, (9, 6) ✗ (6 % 3 = 0), (8, 8) ✓, (12, 9) ✗ (9 % 3 = 0), (10, 11) ✓ — 3 cüt.
• (2, 5), (0, 0), (7, 1)-də s < 8 →
No.Cəmi: 2 + 3 = 5.
pairs = [(9, 4), (9, 6), (2, 5), (-1, 3), (8, 8),
(0, 0), (12, 9), (-5, -5), (7, 1), (10, 11)]
count = 0
for s, t in pairs:
if s >= 8 and t % 3 != 0 or s < 0:
count = count + 1
print(count)▸ Gözlənilən nəticə
5
for dövrü (növbəti dərs) eyni şərti 10 cütün hər biri üçün yoxlayır və Yes cavablarını sayır.x = 3
y = 5
if x * y > 15:
print('#')
elif y ** x != 125:
print('# #')
else:
print('# # # #')
if y // x == 1:
print('# # #')▸ Gözlənilən nəticə
# # # # # # #
Yuxarıdakı proqram icra olunduqdan sonra neçə # simvolu çap olunar?
A) 1 B) 3 C) 4 D) 7 E) 10
Həllini göstərHəllini gizlət
15 > 15 ✗; elif: 5 ** 3 = 125, 125 != 125 ✗ → else: # # # # (4 simvol).İkinci, müstəqil
if: y // x = 5 // 3 = 1, 1 == 1 ✓ → # # # (3 simvol).Cəmi D) 7. İkinci
if ayrıca operatordur və birincinin nəticəsindən asılı olmayaraq yoxlanır.Qalıqla qurulan şərtlər və yazılı tapşırıq
İmtahanın ən sevimli şərtləri qalıqla qurulur. Onları bir baxışda tanımaq lazımdır:
n % 2 == 0— n cütdür;n % 2 == 1— n təkdir;n % k == 0— n k-ya bölünür;n % k != 0— bölünmür;n % 10 == 7— son rəqəm 7-dir;n // 10 % 10 == 3— onluqlar rəqəmi 3-dür;n % 3 == 0 and n % 5 == 0— n 15-ə bölünür;- dövri naxış: nə isə hər k addımdan bir təkrarlanırsa,
n % kn-in naxışdakı yerini göstərir.
Sonuncu fikri yazılı tapşırıqda tətbiq edək. Natural ədədlər 4 sütunlu cədvələ «ilan» kimi yazılıb: tək nömrəli sətirlərdə soldan sağa, cüt nömrəli sətirlərdə sağdan sola.
| A | B | C | D |
|---|---|---|---|
| 1 | 2 | 3 | 4 |
| 8 | 7 | 6 | 5 |
| 9 | 10 | 11 | 12 |
| 16 | 15 | 14 | 13 |
| … | … | … | … |
Klaviaturadan daxil edilmiş natural n ədədinin (1 ≤ n ≤ 1000) yuxarıdakı cədvəlin hansı sütununda olduğunu müəyyən edən proqramı Python dilində yazın. Məsələn: giriş 6 → çıxış C; 13 → D; 16 → A; 26 → B.
Həllini göstərHəllini gizlət
2) İlk iki sətirdən qalıqların yerini oxuyuruq: r = 1 → A, 2 → B, 3 → C, 4 → D, 5 → D, 6 → C, 7 → B, 0 → A (8, 16, 24, … A sütunundadır).
3) Qruplaşdırırıq: A — r = 0 və ya 1; B — 2 və ya 7; C — 3 və ya 6; D — qalan 4 və 5.
4) Bunu
if … elif … else zəncirinə çeviririk (proqram aşağıdadır). Yoxlama: 26 % 8 = 2 → B ✓, 13 % 8 = 5 → D ✓.n = 26
r = n % 8
if r == 0 or r == 1:
print('A')
elif r == 2 or r == 7:
print('B')
elif r == 3 or r == 6:
print('C')
else:
print('D')▸ Gözlənilən nəticə
B
n = int(input()) olmalıdır; burada brauzerdə işləsin deyə n = 26 yazdıq. 6, 13, 16 ilə də yoxla.Yazılı tapşırıqda tam proqram yazılır: giriş (int(input())), hesablama (burada qalıq və şərtlər) və çıxış (print). DİM yazılı tapşırıqların qiymətləndirmə meyarlarını dərc etmir, ona görə hər hissəni aydın yaz və cavabı nümunə cədvəlindəki bütün hallarla, həm də «sərhəd» qiymətləri ilə (burada 8, 16 kimi qalığı 0 olan ədədlərlə) öz proqramında addım-addım yoxla.
Svetofor dövri işləyir: hər 60 saniyənin ilk 30 saniyəsi yaşıl (green), sonrakı 5 saniyəsi sarı (yellow), qalan 25 saniyəsi qırmızı (red) yanır; sayma 0-cı saniyədən başlayır. if … elif … else yaz ki, proqram hər an üçün rəngi çap etsin (verilmiş anları gəzən for dövrü hazırdır).
for t in [10, 33, 50, 1000, 1234]:
r = t % 60
colour = '?'
# choose the colour with if / elif / else
print(t, colour)▸ Gözlənilən nəticə
10 green 33 yellow 50 red 1000 red 1234 yellow
İl 4-ə bölünürsə, amma 100-ə bölünmürsə, və ya 400-ə bölünürsə, o uzun ildir (366 gün). leap dəyişəninə False əvəzinə bu mürəkkəb şərti yaz ki, proqram dörd il üçün düzgün cavab çap etsin.
for y in [2024, 2100, 2000, 2026]:
leap = False # write the condition here
if leap:
print(y, 'Yes')
else:
print(y, 'No')▸ Gözlənilən nəticə
2024 Yes 2100 No 2000 Yes 2026 No
Əsas fikirlər
- Şərt
Truevə yaFalseqiymətli ifadədir: bərabərlik==, bərabərsizlik!=; sətirlər simvol-simvol, kodlara görə müqayisə olunur ('10' < '9'). - Natamam
if-də budaq icra oluna da bilər, olunmaya da; tamif … else-də iki budaqdan mütləq biri icra olunur. Blok girinti ilə müəyyən olunur. if … elif … elsezəncirində yalnız ilk doğru şərtin budağı icra olunur; ayrı-ayrıif-lərin hər biri ayrıca yoxlanır.- Prioritet: hesab → müqayisə →
not→and→or; şübhə olanda mötərizə qoy. - Cüt/tək, bölünmə və dövri naxışlar (sütunlar, günlər, svetofor)
n % kqalığı ilə budaqlara bölünür.
Özünü yoxla
12 sual. Hər düzgün cavab XP qazandırır.