- Proqram, proqramlaşdırma dili, maşın dili, aşağı və yüksək səviyyəli dilləri fərqləndirmək, interpretatorla kompilyatoru müqayisə etmək.
- Dəyişən yaratmaq,
int,float,str,booltiplərini tanımaq və verilənləriinput(),int(input()),input().split()ilə daxil etmək. + - * / // % **əməllərini düzgün ardıcıllıqla hesablamaq,abs(),int(),str()funksiyalarından istifadə etmək.- Qısa proqramın nə çap etdiyini addım-addım izləyərək müəyyən etmək (DİM-in qapalı və kodlaşdırılmış tapşırıqları).
Kompüter yalnız 0 və 1-lərdən ibarət əmrləri başa düşür, sən isə print(7 * 6) yazırsan və o, dərhal 42 cavabını verir. Bu iki dil arasında kim tərcüməçilik edir? Bu dərsdə həm bu sualın cavabını, həm də Python-un ilk vacib alətlərini öyrənəcəksən: dəyişənlər, klaviaturadan daxiletmə, ekrana xaricetmə və hesab əməlləri. DİM-in I qrup qəbul imtahanında informatikanın 30 tapşırığından 9-u Python proqramlarıdır — onların hamısı bu dərsdəki «kərpiclərdən» qurulur.
Proqram, proqramlaşdırma dilləri və translyatorlar
Kompüterin yerinə yetirməli olduğu əmrlərin (təlimatların) proqramlaşdırma dilində yazılmış ardıcıllığı. Proqram alqoritmin kompüter üçün yazılışıdır.
Proqramlaşdırma — proqram yaratma prosesidir: məsələnin qoyuluşu, alqoritmin qurulması, onun proqramlaşdırma dilində yazılması və yoxlanması. Proqramlaşdırma dili proqram yazmaq üçün ciddi qaydaları (sintaksisi) olan formal dildir: Python, C++, Java, Pascal, BASIC.
Dillər kompüterə yaxınlığına görə səviyyələrə bölünür. Maşın dili prosessorun birbaşa icra etdiyi yeganə dildir: əmrlər ikilik kodlarla yazılır və prosessorun tipindən asılıdır. Aşağı səviyyəli dillər (məsələn, assembler) maşın əmrlərini MOV, ADD kimi qısa hərf işarələri ilə yazır; onlar da konkret prosessora bağlıdır. Yüksək səviyyəli dillər (Python, C++, Java, Pascal) insan dilinə və riyazi yazılışa yaxındır, prosessordan asılı deyil, onların bir əmri çoxlu maşın əmrinə çevrilir.
Yüksək səviyyəli dildə yazılmış proqram mətnini (mənbə kodunu) maşın dilinə çevirən proqram. İki növü var: kompilyator və interpretator.
| Xüsusiyyət | Kompilyator | İnterpretator |
|---|---|---|
| Necə tərcümə edir | bütün proqramı birdəfəyə, icradan əvvəl | əmrləri bir-bir: tərcümə edir və dərhal icra edir |
| Nəticə | icra olunan fayl (məsələn, .exe); sonra translyatorsuz işləyir | ayrıca fayl yaranmır; hər icrada interpretator lazımdır |
| Sürət | hazır proqram sürətli işləyir | adətən daha yavaş işləyir |
| Səhvlər | icradan əvvəl, bütün mətn üzrə bildirilir | səhvli əmrə çatanda dayanır; əvvəlki əmrlər artıq icra olunub |
| Nümunələr | C, C++, Pascal, Go | Python, JavaScript, PHP |
Python interpretasiya olunan dildir. Proqram icra olunarkən 5-ci əmrdə səhv baş versə (məsələn, sıfıra bölmə), ilk dörd əmrin nəticəsi ekrana artıq çıxmış olur. Dəqiq desək, Python əvvəlcə bütün mətni aralıq bayt-koda çevirir — ona görə yazı (sintaksis) səhvi olan proqram heç başlamır — lakin məktəb kursunda və imtahanda Python interpretasiya olunan dil kimi təsnif olunur.
Sabitlər, dəyişənlər və mənimsətmə
Sabit proqramın icrası zamanı dəyişməyən qiymətdir: 45, 3.14, 'Baku'. Dəyişən adı olan yaddaş sahəsidir, onun qiyməti proqramın gedişində dəyişə bilər. Python-da dəyişən ona ilk dəfə qiymət mənimsədiləndə yaranır.
Mənimsətmə operatoru = belə işləyir: əvvəlcə sağ tərəfdəki ifadə hesablanır, sonra nəticə sol tərəfdəki dəyişənə yazılır, köhnə qiymət isə itir. Buna görə x = x + 1 tənlik deyil, «x-in qiymətini 1 vahid artır» əmridir. DİM-in izahlarında bu, «dəyişənə … qiyməti mənimsədilir» kimi yazılır. Python bir sətirdə bir neçə mənimsətməyə də icazə verir: a, b = 3, 8.
- ad hərflə və ya
_ilə başlayır, sonra hərf, rəqəm və_gələ bilər:a1,sum_2,_kdüzgündür,2a,my-sum,a bisə səhvdir; - böyük və kiçik hərflər fərqlənir:
avəAiki müxtəlif dəyişəndir; - xidməti sözlər (
if,else,for,while,and,or,not,True) dəyişən adı ola bilməz.
| Tip | Nə saxlayır | Nümunələr |
|---|---|---|
int | tam ədəd | 45, -7, 0 |
float | həqiqi ədəd (onluq kəsr) | 3.5, 2.0, -0.25 |
str | sətir: dırnaq içində mətn | 'Baku', "45", '' |
bool | məntiqi qiymət | True, False |
45 və '45' fərqlidir: birincisi ədəddir, ikincisi mətn. Həqiqi ədədlərdə Python həmişə nöqtə yazır: 3.5.a = 7
b = 2.5
s = '7'
t = a > 5
print(type(a), type(b), type(s), type(t))
print(a * 2, b * 2, s * 2, t)▸ Gözlənilən nəticə
<class 'int'> <class 'float'> <class 'str'> <class 'bool'> 14 5.0 77 True
type() dəyişənin tipini göstərir. Diqqət: s * 2 sətri təkrarlayır (77), b * 2 isə float olaraq qalır (5.0).Python-da dəyişənin tipi ona mənimsədilən qiymətlə müəyyən olunur və proqramın gedişində dəyişə bilər: x = 5-dən sonra x tam ədəddir, x = 'five'-dan sonra isə sətirdir. Buna görə hər tapşırıqda özündən soruş: bu anda dəyişəndə ədəd var, yoxsa mətn? Eyni + işarəsi ədədləri toplayır, sətirləri isə yan-yana birləşdirir.
a = 7, b = 3 olsun. Sonra ardıcıl olaraq a = a + b, b = a - b, a = a - b əmrləri icra olunur. print(a, b) nə çap edəcək?
Həllini göstərHəllini gizlət
a = a + b → a = 7 + 3 = 10, b = 3b = a - b → b = 10 − 3 = 7, a = 10a = a - b → a = 10 − 7 = 3, b = 7Çap olunur: 3 7. Dəyişənlər yerlərini dəyişdi və üçüncü dəyişən lazım olmadı. Python-da eyni işi bir sətirlə görmək olar:
a, b = b, a.Daxiletmə və xaricetmə: input() və print()
print() funksiyası mötərizədəki qiymətləri ekrana çıxarır. Vergüllə ayrılmış bir neçə qiymət bir boşluqla ayrılaraq bir sətirdə çap olunur, hər yeni print() isə yeni sətirdən başlayır. sep parametri ayırıcını, end isə sətrin sonunu dəyişir: print(1, 2, 3, sep='-') → 1-2-3, print('a', end='') isə növbəti çapı həmin sətirdə saxlayır.
input() istifadəçinin klaviaturadan yazdığı sətri oxuyur və onu **həmişə sətir (str) kimi** qaytarır: 5 yazsan belə, '5' alınır. Ədədlə hesablamaq üçün sətri çevirmək lazımdır: tam ədəd üçün int(input()), həqiqi ədəd üçün float(input()). DİM tapşırıqlarındakı proqramlar məhz belə başlayır: n = int(input()). Bir sətirdə boşluqla yazılmış bir neçə qiyməti input().split() oxuyur — o, sətri boşluqlardan bölüb sətirlər siyahısı qaytarır; hər hissəni ayrıca int() ilə çeviririk.
name = input()
age = int(input())
a, b = input().split()
a = int(a)
b = int(b)
print(name, age, a + b)
print(name, 'is', age, sep='_')| Giriş (klaviatura) | Çıxış (ekran) |
|---|---|
Leyla143 8 | Leyla 14 11Leyla_is_14 |
Tapşırığın şərtini diqqətlə oxu: ədədlər hər biri ayrıca sətirdə daxil edilirsə, int(input()) lazım olan qədər təkrarlanır (a = int(input()), b = int(input())); ədədlər bir sətirdə, boşluqla yazılırsa, input().split() istifadə olunur. DİM-in yazılı tapşırıqlarında hər iki forma olur: məsələn, siyahının elementləri «bir-birindən bir boşluqla ayrılmış sətir şəklində», elementlərin sayı n isə ayrıca sətirdə verilə bilər.
name = 'Leyla'
age = int('14')
line = '3 8'
a, b = line.split()
a = int(a)
b = int(b)
print(name, age, a + b)
print(name, 'is', age, sep='_')▸ Gözlənilən nəticə
Leyla 14 11 Leyla_is_14
line.split() sətri ['3', '8'] siyahısına bölür. Qiymətləri dəyişib yenidən işə sal.Proqram icra olunarkən klaviaturadan bir sətirdə 12 5 daxil edilir:a, b = input().split()print(a + b, int(a) + int(b), a * 2)
Nə çap olunacaq?
Həllini göstərHəllini gizlət
split() sətri ['12', '5'] siyahısına bölür: a = '12', b = '5' — hər ikisi sətirdir.a + b sətirləri birləşdirir: 125.int(a) + int(b) = 12 + 5 = 17.a * 2 sətri iki dəfə təkrarlayır: 1212.Cavab: 125 17 1212.
Hesab əməlləri: //, % və əməllərin ardıcıllığı
| Əməl | Mənası | Nümunə | Nəticə |
|---|---|---|---|
+ - * | toplama, çıxma, vurma | 17 + 5, 17 - 5, 17 * 5 | 22, 12, 85 |
/ | bölmə; nəticə həmişə float | 17 / 5, 8 / 2 | 3.4, 4.0 |
// | tam bölmə — natamam qismət | 17 // 5 | 3 |
% | bölmədən qalıq | 17 % 5 | 2 |
** | qüvvətə yüksəltmə | 2 ** 5 | 32 |
- abölünən (tam ədəd)
- bbölən, b > 0
- a // bnatamam qismət
- a % bqalıq
Qalıqlı bölmə: // və % həmişə cüt işləyir. Yoxlama: qisməti bölənə vurub qalığı əlavə etsən, bölünən alınmalıdır.
Hesablayın: 1) 47 // 6 və 47 % 6; 2) 5 // 8 və 5 % 8; 3) -17 // 5 və -17 % 5.
Həllini göstərHəllini gizlət
47 // 6 = 7, 47 % 6 = 47 − 42 = 5. Yoxlama: 6 · 7 + 5 = 47.2) Bölünən böləndən kiçikdir:
5 // 8 = 0, 5 % 8 = 5 (ədəd özü qalır).3) Python-da
// həmişə aşağı, kiçik tərəfə yuvarlaqlaşdırır: −17 : 5 = −3,4 → -17 // 5 = −4. Qalıq: −17 − 5 · (−4) = 3, yəni yenə 0 ≤ 3 < 5.Əməllərin prioriteti (soldan sağa azalır). Eyni səviyyəli * / // % əməlləri soldan sağa icra olunur, ** isə sağdan sola: 2 ** 3 ** 2 = 2 ** 9 = 512. ** birhədli mənfidən güclüdür: -2 ** 2 = −4.
a = 7
b = 45
c = b // a % 4 * 3 + b % a ** 2
print(c)▸ Gözlənilən nəticə
51
a = int(input()) olur və klaviaturadan 7 daxil edilir.Klaviaturadan 7 daxil edilərsə, yuxarıdakı proqramın nəticəsini müəyyən edin.
A) 15 B) 51 C) 45 D) 6 E) 57
Həllini göstərHəllini gizlət
+ ən axırda icra olunur.Sol hissə soldan sağa:
b // a = 45 // 7 = 6 → 6 % 4 = 2 → 2 * 3 = 6.Sağ hissədə
** daha güclüdür: a ** 2 = 49, sonra 45 % 49 = 45 (45 < 49, ədəd özü qalır).c = 6 + 45 = 51, cavab B.
Tələ:
b % a ** 2-ni (b % a)² kimi hesablayan 3² = 9 alır və səhvən 15-i (A) seçir.Ədədin rəqəmləri və tip çevirmələri
- nüçrəqəmli natural ədəd
- ayüzlüklər rəqəmi
- bonluqlar rəqəmi
- ctəkliklər (son) rəqəm
n % 10 həmişə son rəqəmi, n // 10 isə son rəqəmi atılmış ədədi verir. Dövrlə istənilən uzunluqlu ədədin rəqəmləri «Ədədlər üzərində əməllər: rəqəmlər, bölənlər və sadə ədədlər» dərsində işlənir.
n = 739
a = n // 100
b = n // 10 % 10
c = n % 10
print(c * 100 + b * 10 + a, a + b + c, abs(a - c))▸ Gözlənilən nəticə
937 19 2
n = int(input())-dur.Klaviaturadan 739 daxil edilərsə, yuxarıdakı proqram nə çap edər?
Həllini göstərHəllini gizlət
Birinci qiymət: 9 · 100 + 3 · 10 + 7 = 937 — ədəd tərsinə yazıldı.
İkinci: 7 + 3 + 9 = 19 — rəqəmlərin cəmi.
Üçüncü:
abs(7 - 9) = |−2| = 2.print üç qiyməti boşluqla ayırır: 937 19 2.Tip çevirmələri. str() ədədi sətrə, int() isə sətri və ya həqiqi ədədi tam ədədə çevirir: str(45) + '1' → 451, int('45') + 1 → 46, int(7.9) → 7 (kəsr hissə sadəcə atılır, yuvarlaqlaşdırılmır). len(str(n)) ədədin rəqəmlərinin sayını verir: len(str(2026)) → 4. abs(x) ədədin modulunu qaytarır: abs(-12) → 12.
- 1.17 // 5 →
- 2.17 % 5 →
- 3.2 ** 3 ** 2 →
- 4.-7 // 2 →
- 5.int('12') + 3 →
- 6.len(str(40961)) →
DİM tipli tapşırıqlar: proqram nə çap edir?
İmtahanda proqram adətən 5–15 sətirdir və sual birdir: «proqramın nəticəsini müəyyən edin». Qapalı tapşırıqda 5 cavab variantı olur, kodlaşdırılmış tapşırıqda isə cavabı özün yazırsan. Hər iki halda qalib gələn üsul eynidir — proqramı kompüter kimi, sətir-sətir «icra etmək».
- 1Dəyişən cədvəli aç
Hər dəyişən üçün sütun çək və ilkin qiymətləri yaz.
input()varsa, verilən giriş qiymətini tipinə uyğun yaz:int(input())→ ədəd,input()→ sətir. - 2Sətir-sətir irəlilə
Hər mənimsətmədən sonra yalnız həmin dəyişənin sütununu yenilə, köhnə qiyməti üstündən xətlə. Sağ tərəf həmişə köhnə qiymətlərlə hesablanır.
- 3Prioritetə əməl et
Mürəkkəb ifadədə əvvəl
**, sonra* / // %soldan sağa, sonra+ -. Aralıq nəticələri yaz. - 4Tiplərə diqqət et
/həmişəfloatverir (8 / 2→4.0); sətirlər üçün+birləşdirmə,*isə təkrardır. - 5Çap formatını yoxla
print(a, b)qiymətləri bir boşluqla ayırır, hərprintyeni sətirdə çıxır. Variantlar çox vaxt məhz boşluq və sətir fərqi ilə ayrılır.
Film t saniyə davam edir. Onun neçə tam saat, dəqiqə və saniyə olduğunu bir sətirdə, boşluqla ayıraraq çap et. Proqramı t = 7384 üçün yoxla (imtahan variantında t = int(input()) olardı).
t = 7384
# hours, minutes, seconds▸ Gözlənilən nəticə
2 3 4
Bir sətirdə boşluqla iki natural ədəd verilib: line = '38 7'. split() ilə onları ayır, int() ilə çevir və bir sətirdə natamam qisməti, qalığı və yoxlama qiymətini (bölən · qismət + qalıq) çap et.
line = '38 7'
# split, convert, print quotient, remainder, check▸ Gözlənilən nəticə
5 3 38
Əsas fikirlər
- Translyator yüksək səviyyəli dildəki proqramı maşın dilinə çevirir: kompilyator bütün proqramı əvvəlcədən və icra olunan fayla, interpretator isə əmrləri bir-bir tərcümə edib dərhal icra edir. Python interpretasiya olunan dildir.
=mənimsətmədir: əvvəl sağ tərəf hesablanır, sonra nəticə sol tərəfdəki dəyişənə yazılır.input()həmişə sətir qaytarır: ədəd üçünint(input()), bir sətirdə bir neçə qiymət üçüninput().split().//natamam qisməti,%qalığı verir: a = b · (a // b) + a % b;n % 10son rəqəm,n // 10son rəqəmsiz ədəddir.- Prioritet: mötərizə →
**(sağdan sola) →* / // %(soldan sağa) →+ -;/həmişəfloatverir.
Özünü yoxla
12 sual. Hər düzgün cavab XP qazandırır.