Harplyk, 1 synp, Abdullaýewa Ş, Metýakubow J, 2021
Bu bloqda isə Sizləri bir-birindən maraqlı məlumtlar, proqramlar və əlbəttə ki, dərslər gözləyir. Kitab və bloqla bağlı öz düşüncələrinizi, təklif və rəylərinizi müəlliflə bölüşə bilərsiniz. Sizə uğurlar
Bloqa Xoş Gəlmisiniz
Müəllifi Kərim Tahiroğlu olan bu kitab Python proqramlaşdırma dili ilə bağlı Azərbaycan dilində nəşr edilmiş ilk ədəbiyyatdır.
Nüfuzlu TIOBE Proqramlaşdırma İcmasının məlumatlarına görə Python hazırda dünya üzrə ilk onluqda yer alan populyar proqramlaşdırma dili sayılır. Python dili 1991-ci ildə Guido van Rossum tərəfindən işlənib hazırlanmışdır. Proqramlaşdırmanın müasir tələblərinə cavab verən bu dil universaldır. Bu gün Google, Intel, CISCO, Hewlett-Packard, Qualcomm, IBM və NASA kimi qurumlar bir çox layihələrini Python dilində işləyib hazırlayırlar. Python dili pulsuz olaraq yayılır. Bu dili öyrənmək asan və əyləncəlidir. Odur ki, Python dili nəinki peşəkar proqramçılar tərəfindən istifadə olunur, eləcə də həvəskarlar, məktəblilər də bu dilin imkanlarından geniş surətdə faydalanırlar. Əgər proqramlaşdırmaya yeni başlayırsınızsa, o zaman Python dili tam Sizə görədir.
Sizə təqdim edilən bu kitab ali məktəb tələbələri, informatika müəllimləri, orta məktəb şagirdləri və ümumiyyətlə proqramlaşdırmanı öyrənmək istəyən hər kəs üçün nəzərdə tutulmuşdur.
Bu bloqda isə Sizləri bir-birindən maraqlı məlumtlar, proqramlar və əlbəttə ki, dərslər gözləyir. Kitab və bloqla bağlı öz düşüncələrinizi, təklif və rəylərinizi müəlliflə bölüşə bilərsiniz. Sizə uğurlar
Aprel 2021 üçün TIOBE İndeksi
Şərt operatoru
Buraya qədər yazdığımız proqramlarda biz xətti alqoritmlərdən istifadə etdik. Yəni proqramlarımızdakı əməliyyatlar ardıcıl şəkildə icra olundular. Lakin proqramlaşdırmada budaqlanma alqoritmlərindən də istifadə olunur. Başqa sözlə desək, proqramın icra olunma istiqaməti verilmiş şərtin yerinə yetirilib yetirilməməsindən asılı olaraq dəyişə bilir. Bunun üçün Python dilində if-else şərt operatoru nəzərdə tutulmuşdur.
if-else şərt operatorunun standart yazılış forması aşağıdakı kimidir:
if şərt: ifadə1 else: ifadə2
Bildiniyiniz kimi ingiliscə if sözü əgər, else isə əks halda kimi tərcümə olunur. Burada şərt kimi istənilən məntiqi ifadə istifadə oluna bilər. Şərtdən sonra operator başlığının sonunu bildirmək üçün iki nöqtə (:) qoyulmalıdır, bu simvol həmçinin else operatorundan sonra da yazılmalıdır. Buradakı ifadə1 və ifadə2 isə istənilən ifadə və ya ifadələr ardıcıllığı ola bilər. Beləliklə yuxarıdakı yazılışı bu cür oxuya bilərik:
Əgər şərt ödənilirsə ifadə1, əks halda ifadə2 icra olunsun.
Python dilinin if-else şərt konstruksiyası ilə bağlı üç önəmli məqamı qeyd edək:
- Konstruksiyada iki nöqtə (:) simvolunun yazılması zəruridir. Bu simvol operator başlığı ilə icra olunacaq ifadəni (və ya ifadələr ardıcıllığını) bir-birindən ayırır.
- İki nöqtədən sonra gələn sətir aralıqla (indent) verilməlidir. Skript fayllarında bu məsafə standart olaraq dörd boşluq qədər təyin edilmişdir.
- İki nöqtədən sonra eyni aralıqla gələn bütün sətrlər verilmiş şərt daxilində icra olunurlar.
İndi isə şərt operatorunu konkret misal üzərində tətbiq edək. Deyək ki, verilmiş tam ədədin cüt və ya tək olduğunu yoxlamaq və bu haqda ekrana məlumat çıxarmaq lazımdır.
Proqramı yazmağa başlamadan öncə gəlin hansı ədədlərin cüt olduğunu müəyyənləşdirək. Bildiyiniz kimi ikiyə qalıqsız bölünən ədədlər cüt ədədlərdir. Başqa sözlə desək ədədi ikiyə böləndə alınan qalıq sıfıra bərabərdirsə, bu ədəd cüt, əks halda tək ədəddir. Xatırlayırsınızsa əvvəlki dərslərimizin birində biz qalıqlı bölmə operatorunu (%) keçmişdik. İndi bu operator bizim işimizə yarayacaq:
>>> a=int(input("Ədədi daxil edin:")) Ədədi daxil edin:78 >>> if a % 2 == 0: print("Cüt") else: print("Tək") Cüt >>>
Nə baş verdi? Əvvəlcə biz istifadəçinin input() funksiyası ilə daxil etdiyi qiyməti int() funksiyasından istifadə edərək bir-başa int tipinə çevirdik və a dəyişəninə mənsub etdik. Bundan sonra bu dəyişənin qiymətini ikiyə böləndə qalığının sıfır olub-olmadığını if-else şərt operatorunun köməyilə yoxladıq. Əgər qalıq sıfıra bərabərdirsə print() funksiyası ilə ekrana Cüt, deyilsə Tək məlumatını çıxardıq. Bu qədər sadə.
Keçək başqa bir misala. Azərbaycanın paytaxtının hansı şəhər olduğunu soruşan proqram tərtib edək. Düzgün cavab verəni alqışlayaq, səhv edəni də öyrədək. Gəlin bu proqramı skriptdə yazaq. Bunu necə etməyi artıq bilirsiniz:
sual = "Azərbaycanın paytaxtı hansı şəhərdir? " cavab = input(sual) if (cavab == "Bakı") or (cavab == "bakı"): print("Təbriklər! Cavabınız doğrudur.") else: print("Təəssüflər! Cavabınız yanlışdır.") print("Doğru cavab: Bakı.")
Bu proqramı icra etmədən öncə gəlin onu incələyək. Burada biz əvvəlcə sual dəyişəninə vermək istədiyimiz sualı mənimsətdik. Sonra istifadəçinin klaviaturdan daxil etdiyi cavabı cavab dəyişənində yadda saxladıq. Bundan sonra isə cavab dəyişəninin qiymətini həqiqi cavabla müqayisə etdik və bu müqayisənin nəticəsindən asılı olaraq ekrana müvafiq məlumatlar çıxardıq.
Burada daha bir neçə məqama diqqətinizi cəlb etmək istəyirəm. Proqramdan da gördüyünüz kimi, biz şərt kimi mürəkkəb məntiqi ifadədən istifadə etdik. Bunu ona görə etdik ki, istifadəçi şəhər adını daxil edərkən ilk hərfi kiçik də yaza bilər. Burada məntiqi birləşdirici (məntiq operatoru) kimi or (və ya) operatorundan istifadə etdik. Və biz burda sadə ifadələri mötərizə daxilində yazdıq. Əslində buna məcbur deyildik, sadəcə mürəkkəb ifadə bizim üçün daha aydın olsun deyə bunu etdik.
Daha bir məqam isə else: operatorundan sonra iki ifadənin icra olunmasıdır. Xatırlayırsınızsa yuxarıda qeyd etmişdik ki, iki nöqtədən sonra eyni aralıqla gələn bütün sətrlər verilmiş şərt daxilində icra olunurlar. Eyni qayda if (şərt): operatorundan sonra eyni aralıqla gələn sətrlər üçün də keçərlidir.
Proqramı icra edin və suala doğru və yanlış cavablar verərək nəticələri yoxlayın.
Oyun Proqramlaşdırması Nədir
Proqramlaşdırmanın müxtəlif sahələri vardır. Bunlardan biri də kompüter oyunlarının ərsəyə gətirilməsi üçün nəzərdə tutulan oyun proqramlaşdırmasıdır. Əksəriyyətin hər gün oynadığı müxtəlif kompüter oyunları oyun proqramçıları tərəfindən işlənib hazırlanır.
gamingshift.com saytının araşdırmalarına (2021) görə dünyada 1 milyondan çox kompüter oyunları vardır. Oyun həvəskarlarının sayı isə çoxdan 2 milyardı ötmüşdür. Bu az bir rəqəm deyil. Təsəvvür edin ki, dünya əhalisinin hardasa üçdə biri kompüter, mobil telefon və ya oyun konsolunda oyun oynayır! 2020-ci ilə olan statistikaya görə isə oyun sənayesinin bazar həcmi 167.9 milyard ABŞ dolları olmuşdur.
İlk kompüter oyunu
İlk kompüter oyununun hansı olması ilə bağlı müxtəlif fikirlər səslənsə də, mütəxəssislərin əksəriyyətinin qəbul etdiyi Spacewar! oyunudur. Proqramçısı Steve Russel olan bu oyun 1962-ci ilin Fevralında PDP-1 kompüterində ərsəyə gətirilmişdir. İki nəfər oyunçu üçün nəzərdə tutulan Spacewar! oyununun məntiqi çox sadədir.
Ekranın mərkəzində ulduz və ətrafında iki kosmik gəmi var. Ulduz öz qravitasiya qüvvəsi ilə kosmik gəmiləri özünə tərəf çəkir. Gəmilərin məqsədi ulduz və digər gəmi ilə toqquşmadan, və eləcə də rəqib gəminin raket zərbəsindən qorunmaqdır. Başlanğıcda hər kosmik gəminin ixtiyarında manevr etmək üçün müəyyən miqdarda yanacaq və digər gəmiyə zərbə endirmək üçün torpedo var. Əgər oyunçu gəmiylə bağlı heç bir manevr etməsə, gəmi kosmosda ətalət üzrə hərəkət edəcək. Spacewar! oyununun online simulyasiyasını buradan oynaya bilərsiniz.
Sadə dildə desək oyun proqramçıları oyun sənayesi sahəsində fəaliyyət göstərən proqramçılardır. Video oyunları tarixinin ilk çağlarında oyun proqramçıları dizayn da daxil olmaqla oyunların ərsəyə gətirilməsinin bir çox aspektləri ilə bilavasitə məşğul idilər. Lakin sonrakı dövrlərdə İKT-nin inkişafı nəticəsində oyun sənayesində də ixtisaslaşma baş verdi və onların işi əsas etibarilə kodlaşdırma oldu. Bununla belə oyun proqramçıları peşəkar fəaliyyətləri boyunca prodüser, dizayner və animatorlarla sıx təmasda olurlar. Məhz buna görə də onların kodlaşdırmadan başqa qrafik, səs və süni intellekt ilə bağlı da kifayət qədər bilik və bacarıqları olmalıdır.
Oyun sənayesində çalışan proqramçılar aşağıdakı kateqoriyalara bölünürlər:
- Oyun motoru proqramçısı
- Süni İntellekt proqramçısı
- Səs proqramçısı
- Gameplay proqramçısı
- Skriptçi
- İstifadəçi İnterfeysi proqramçısı
- Input proqramçısı
- Şəbəkə proqramçısı
- Oyun alətləri proqramçısı
- Portlama proqramçısı
- Texnologiya proqramçısı
- Generalist
- Lider proqramçı
Proqramlaşdırma dilləri və alətlər
Oyun sənayesində istifadə olunan proqramlaşdırma dilləri və alətlər aşağıdakılarıdır:
- C
- C++
- C#
- Ruby
- Lua
- Python
- Java
- Objective-C
- Swift
- Visual Basic
- ActionScript
- JavaScript
- Nuke
- Unreal Engine
- OpenGL
- Maya
- 3D Studio Max
- Adobe Photoshop, Illustrator, After Effects
- Unity
- Blender
- GIMP
Son olaraq qeyd etmək lazımdır ki, oyun proqramlaşdırması daim inkişaf edən sahədir. Və burada rəqabət də olduqca güclüdür. Tələb olunan oyun proqramçısı olmaq üçün texnoloji yenilikləri izləməli, bilik və bacarıqlarınızı sistemli olaraq yeniləməlisiniz.
Məntiqi ifadələr və məntiq tipi
Biz yuxarıda müqayisə operatorlarını nəzərdən keçirdik. Müqayisə operatorlarından istifadə edilərək qurulan və nəticəsi doğru (True) və ya yalan (False) olan ifadələr məntiqi ifadələr adlanır. Deməli məntiqi ifadələrin nəticəsi bizə məntiq (bool) tipində qiymətlər (True və ya False) verəcək. Beləliklə də biz Python dilinin daha bir tipi olan bool tipi ilə tanış oluruq.
Gəlin sadə məntiqi ifadələri misallarla göstərək:
>>> x = 2 * 2 >>> x == 4 True >>> x == 5 False >>>
Məncə hər şey aydındır. İki vur iki dörddür. Bunu bütün dünya bilir və bu hər zaman da belə olacaq. Python da bunu bilir və ona görə də x == 4 məntiqi ifadəsinin nəticəsini True (doğru), x == 5 ifadəsinin nəticəsini də False (yalan) olaraq verir.
Digər misalları nəzərdən keçirək:
>>> x = 2 * 2 >>> x != 5 True >>> x > 5 False >>> x < 5 True >>> x >= 4 True >>> x >>
Biz məntiqi ifadənin nəticəsini başqa bir dəyişəndə yadda saxlaya bilərik:
>>> x = 2 * 2 >>> y = x == 5 >>> print(y) False >>>
Burada qeyd etmək lazımdır ki, müqayisə operatorlarının icra olunma öncəliyi mənimsətmə operatorundan daha yüksəkdir. Odur ki, yuxarıdakı proqramda əvvəlcə x == 5 ifadəsi icra olunur, daha sonra da bu ifadənin məntiqi nəticəsi y dəyişəninə mənimsədilir.
Yuxarıda qeyd etmişdik ki, məntiqi ifadələrin icrası bizə bool (məntiq) tipində qiymətlər verir. Buna type() funksiyasından istifadə etməklə əmin ola bilərik:
>>> x = 2 * 2 >>> type(x == 5) >>>
İndi isə verilən qiyməti bool tipinə çevirən bool() funksiyasını nəzərdən keçirək:
>>> bool(5) True >>> bool(0) False >>> bool(-2.3) True >>> bool("Bakı") True >>> bool("") False >>>
Yuxarıdakı misallardan da gördüyünüz kimi ədəd (tam və ya həqiqi) tipində olan və sıfırdan fərqli (müsbət və ya mənfi) qiymətlər məntiq tipinə çevriləndə True qiymətini alırlar. Sıfıra (0 və ya 0.0) bərabər qiymət isə məntiq tipinə çevriləndə False qiymətini alır. Burada bir maraqlı məqama da diqqət yetirin. Əgər str (sətir) tipində olan qiymətlər heçnə (“”) deyillərsə, o zaman onlar bool (məntiq) tipinə çevriləndə True, əks halda isə False qiymətini alırlar.
Mürəkkəb ifadələr
Bütün yüksək səviyyəli proqramlaşdırma dillərində daha sadə elementlərdən mürəkkəb sistemlərin təşkil edilməsi imkanı nəzərdə tutulmuşdur. İndiyə qədər yazdığımız proqramlarda özümüz də fərq etmədən biz bu konsepsiya ilə qarşılaşmışıq.
Məsələn, deyək ki, biz iki ədədin cəmini ekrana çapa vermək istəyirik. Burada iki müxtəlif əməliyyat mövcuddur: ədədləri cəmləmək və nəticəni ekrana çıxarmaq. Bu iki əməliyyatı bir ifadədə yazmaq mümkündür:
>>> print(3+2) 5 >>>
Biz bu məntiqlə daha mürəkkəb ifadələr qura bilərik. Ümumiyyətlə ifadələri bir neçə üsuldan istifadə etməklə kombinə etmək olar. Gəlin bu üsulları nəzərdən keçirək.
Birinci üsul kimi biz ifadələri iç-içə daxil edə bilərik:
>>> a = 10 * 2 / 8 >>> int(a ** a) 9 >>>
Yuxarıdakı proqramın birinci sətrində əvvəlcə 10 ilə 2 bir-birinə vurulur, alınan hasil 8-ə bölünür və nəticə a dəyişəninə mənimsədilir. İkinci sətirdə isə a dəyişəni özü dəfə qüvvətə yüksəldilir və alınan nəticə int() funksiyası ilə tam ədəd tipinə çevrilir.
İkinci üsul isə ifadələrin sıralanmasıdır:
>>> b = (11 + 22) * 3; print(b) 99 >>>
Bu proqramda iki ifadə (mənimsətmə və çap etmə) bir-birindən nöqtə-vergül (;) simvolu ilə ayrılıb. Burada ikinci ifadə birinci ifadədən sonra icra olunur. Ümumiyyətlə istənilən proqram ifadələr ardıcıllığından ibarətdir. Biz Python dilində proqramlarda ifadələri ayrı-ayrı sətirlərdə yazdığımıza görə hər ifadənin sonuna nöqtə-vergülün qoyulması məcburi deyil. Çünki bu halda ifadələri bir-birindən ayıran sətir sonlarıdır. Lakin ifadələr yuxarıdakı misalda olduğu kimi eyni bir sətirdə yazılarsa, o zaman onlar bir-birindən nöqtə-vergül (;) simvolu ilə ayrılmalıdır.
Əməliyyatların ardıcıllığı
Əksər proqramlaşdırma dilləri bir ifadədə bir neçə əməliyyatı qruplaşdırmağa imkan verir. Bununla da proqram kodları daha yığcam olur. Məsələn, deyək ki, biz 20 ədədinin 80-nin neçə faizi olduğunu hesablamaq istəyirik:
>>> print(100*20/80,"%") 25.0 % >>>
Bu misalı nəzərdən keçirsək görəcəyik ki, burada print() funksiyasının daxilində bir neçə əməliyyat icra olunur. Əvvəlcə 100 ilə 20 bir-birinə vurulur, sonra alınan nəticə 80-ə bölünür və əldə edilən qiymətin sonuna % simvolu əlavə edilir. Sonda isə yekun nəticə ekrana çıxarılır.
Əgər bir ifadədə birdən çox əməliyyat varsa, bu əməliyyatların icra olunma ardıcıllığı onların ifadədə yerləşmə sırasından və icra olunma öncəliyindən asılıdır. Python proqramlaşdırma dilində əməliyyatların icra olunma öncəlikləri riyaziyyatda olduğu kimidir.
Ən yüksək öncəlik dərəcəsi mötərizələr daxilindəki əməliyyatlarındır. Onlar hər zaman ilk öncə icra olunurlar. Həmçinin mötərizələrdən istifadə etməklə ifadələrin özümüz üçün daha anlaşıqlı və rahat oxunmasına nail olmaq mümkündür. Bu halda onlar nəticəyə heç bir təsir göstərmir:
>>> print(2*(3+7)) 20 >>> print((100*20)/80,"%") 25.0 % >>>
Əməliyyatların icrasında növbəti öncəlik isə qüvvətə yüksəltmədir:
>>> print(2**2+1) 5 >>> print(3*2**3) 24 >>>
Vurma və bölmə, eləcə də tam bölmə və qalıqlı bölmə əməliyyatlarının toplama və çıxma əməlyyatlarına görə icra olunma öncəlikləri vardır:
>>> print(2*3-1) 5 >>> print(5/2+3) 5.5 >>> print(9//2+6) 10 >>> print(7%2+3) 4 >>>
Əgər bir ifadə daxilində eyni öncəlik dərəcəsi olan operatorlar varsa, onların icra olunma ardıcıllığı soldan sağa doğru olacaq:
>>> print(10*20/8//3%5) 3.0 >>>
Biz yuxarıda yazdığımız proqramlarda qiymətlərdən istifadə etdik. Siz eyni əməliyyatları dəyişənlər üzərində də yerinə yetirə bilərsiniz.
Sonda onu da qeyd edək ki, növbəti dərslərimizdə Python dilinin digər operatorları ilə də tanış olacağıq. Bu operatorların icra olunma öncəlikləri haqqında da o zaman danışılacaq. Amma səbri çatmayanlar Operatorların Öncəlik Sırası Cədvəlinə indi də baxa bilər:
Operator | Təyinatı |
** | Qüvvətə yüksəltmə operatoru |
~ + – | Bit əsaslı inkar, unar plyus və unar minus operatorları |
* / // % | Vurma, bölmə, tam bölmə və qalıqlı bölmə operatorları |
+ – | Toplama və çıxma operatorları |
>> | Bit əsaslı sağa sürüşdürmə və sola sürüşdürmə operatorları |
& | Bit əsaslı və operatoru |
^ | | Bit əsaslı vəya deyil və vəya operatorları |
>= | Müqayisə operatorları |
!= <> == | Bərabərlik operatorları |
= %= /= //= -= += *= **= | Mənimsətmə operatorları |
is is not | İdentiklik operatorları |
in not in | Üzvlük operatorları |
not or and | Məntiq operatorları |
Bu cədvəldə yüksəkdən aşağıya doğru operatorların icra olunma öncəlikləri göstərilmişdir.
Tip çevrilmələri
Proqramlaşdırmada bəzən bir tipdə olan məlumatı başqa bir tipə çevirmək lazım gəlir. Hər bir proqramlaşdırma dilində olduğu kimi Python dilində də tip çevrilmələrini həyata keçirən funksiyalar mövcuddur. Bu dərsdə bu funksiyalardan bir neçəsini nəzərdən keçirəcəyik.
int()
Bu funksiya verilən qiyməti int (tam ədəd) tipinə çevirir. Əgər çevrilmə mümkün deyilsə istisna hal qeydə alınır.
>>> int("2015") 2015 >>> int("Salam") Traceback (most recent call last): File "", line 1, in int("Salam") ValueError: invalid literal for int() with base 10: 'Salam' >>> int(3.9) 3 >>> int(-2.3) -2 >>>
Gəlin nümunələri incələyək. Əvvəlcə biz sətir tipində olan “2015” qiymətini tam ədəd tipinə çevirdik. Çevrilmə baş verdi və növbəti sətirdə tam ədəd tipində 2015 qiymətini əldə etdik.
Sonra biz yenə sətir tipində olan “Salam” qiymətini tam ədəd tipinə çevirməyə cəhd etdik. Çevrilmə baş vermədiyinə görə istisna hal qeydə alındı.
Növbəti misallarda isə biz həqiqi ədəd tipindəki qiymətlərin (3.9 və -2.3) tam ədəd tipinə çevrilməsini istədik. Bunu həyata keçirən int() funksiyası qiymətlərin kəsr hissəsini atıb tam hissəsini saxladı.
float()
Bu funksiya verilən qiyməti float (həqiqi ədəd) tipinə çevirir. Əgər çevrilmə mümkün deyilsə istisna hal qeydə alınır.
>>> float(32) 32.0 >>> float("5.45") 5.45 >>> float("Kitab") Traceback (most recent call last): File "", line 1, in float("Kitab") ValueError: could not convert string to float: 'Kitab' >>>
Gəlin nümunələri incələyək. Əvvəlcə biz tam ədəd tipində olan 32 qiymətini həqiqi ədəd tipinə çevirdik. Çevrilmə baş verdi və növbəti sətirdə həqiqi ədəd tipində 32.0 qiymətini əldə etdik.
Sonra biz sətir tipində olan “5.45” qiymətinin həqiqi ədəd tipinə çevrilməsini istədik. Buna həyata keçirən float() funksiyası növbəti sətirdə bizə həqiqi ədəd tipində 5.45 qiymətini verdi.
Daha sonra biz sətir tipində olan “Kitab” qiymətini həqiqi ədəd tipinə çevirməyə cəhd etdik. Çevrilmə baş vermədiyinə görə istisna hal qeydə alındı.
str()
Bu funksiya verilən qiyməti str (sətir) tipinə çevirir.
>>> str(1978) '1978' >>> str(7.62) '7.62' >>>
Nümunələrdən də gördüyünüz kimi str funksiyası verilən tam və həqiqi ədəd tipindəki qiymətləri sətir tipinə çevirir.
Onu da qeyd edim ki, Python dilində tip çevrilmələrini həyata keçirən digər funksiyalar da mövcuddur. Biz onlar haqqında gələcək dərslərimizdə bəhs edəcəyik.
İndi isə daha maraqlı bir proqram üzərində işləyək. Daha öncə yazdığımız iki ədədi toplayan proqramı xatırlayırsınız?
>>> a = 15 >>> b = 20 >>> c = a + b >>> print(c) 35 >>>
Bu proqram yalnız əvvəlcədən verilən ədədləri toplayırdı. Amma daha yaxşı olardı ki, biz elə bir proqram yazaq ki, o istifadəçinin verdiyi ədədləri toplaya bilsin. Yəni hər bir istifadəçi toplamaq istədiyi ədədləri klaviaturdan özü daxil edə bilsin. Yəgin ki, anladınız. Biz burda qiymətlərin input() funksiyasından istifadə etməklə klaviaturdan daxil edilməsini nəzərdə tuturuq.
O zaman toplama proqramını aşağıdakı kimi yazmalıyıq:
>>> a = input("1-ci ədədi daxil edin: ") 1-ci ədədi daxil edin: 22 >>> b = input("2-ci ədədi daxil edin: ") 2-ci ədədi daxil edin: 33 >>> c = a + b >>> print("Ədədlərin cəmi: ",c) Ədədlərin cəmi: 2233 >>>
Gəlin bu proqramı incələyək. Biz burada a və b dəyişənlərinə istifadəçinin klaviaturdan daxil etdiyi 22 və 33 qiymətlərini mənimsətdik. Bundan sonra a və b dəyişənlərinin qiymətlərini toplayıb nəticəni c dəyişənində saxladıq və onu ekrana çapa verdik. Məntiqlə ekrana cavab kimi 55 çıxmalı idi, amma 2233 çıxdı. Burada semantik xəta baş verdi. Yəni proqram bizim ondan gözlədiyimiz nəticəni vermədi.
Sizcə niyə? Əgər xatırlayırsınızsa input() funksiyasını öyrənərkən qeyd etmişdik ki, bu funksiya çağrıldığı zaman istifadəçi məlumatı daxil edib enter düyməsinə vurduqda funksiya bu məlumatı str (sətir) tipində özündə saxlayacaq. Deməli istifadəçinin daxil etdiyi 22 və 33 qiymətləri a və b dəyişənlərinə əslində “22” və “33” kimi ötürülür. Yəni bu qiymətlərin tipi str (sətir) olduğuna görə a və b dəyişənlərinin də tipi str (sətir) olacaq. Belə olduğu təqdirdə sətir tipində olan qiymətləri toplayanda onlar birləşdirilmiş (yan-yana gəlmiş) olacaq.
Bəs nə etməli? Axı bizə riyazi toplama lazımdır. Bax elə bu məqamda biz tip çevrilməsini həyata keçirən müvafiq funksiyadan istifadə etməliyik. Konkret olaraq bizə daxil edilən str (sətir) tipində məlumatı int (tam ədəd) tipinə çevirən int() funksiyası lazımdır. Yəni biz str tipində olan a və b dəyişənlərinin tipini int olaraq dəyişməliyik.
Deyilənləri nəzərə alaraq toplama proqramında lazımi düzəlişləri edək:
>>> a = input("1-ci ədədi daxil edin: ") 1-ci ədədi daxil edin: 22 >>> b = input("2-ci ədədi daxil edin: ") 2-ci ədədi daxil edin: 33 >>> c = int(a) + int(b) >>> print("Ədədlərin cəmi: ",c) Ədədlərin cəmi: 55 >>>
Gördüyünüz kimi biz c = a + b ifadəsini c = int(a) + int(b) ifadəsi ilə dəyişdik. Yəni str tipində olan a və b dəyişənlərinin tipini int olaraq dəyişdikdən sonra onları topladıq. Nəticədə ekrana 55 çıxdı.
Biz eyni proqramı aşağıdakı üsulla da yaza bilərdik:
>>> a = int(input("1-ci ədədi daxil edin: ")) 1-ci ədədi daxil edin: 22 >>> b = int(input("2-ci ədədi daxil edin: ")) 2-ci ədədi daxil edin: 33 >>> c = a + b >>> print("Ədədlərin cəmi: ",c) Ədədlərin cəmi: 55 >>>
Burada biz istifadəçinin input() funksiyası ilə daxil etdiyi qiymətləri int() funksiyasından istifadə edərək bir-başa int tipinə çevirib sonra dəyişənlərə mənsub etdik. Bundan sonra a və b dəyişənlərini riyazi olaraq toplayıb yenə nəticəni c dəyişənində yadda saxladıq və ekrana çapa verdik.
Operator və operandlar
İndi isə gəlin bir az da operatorlar haqqında danışaq. Operatorlar, müəyyən əməliyyatları həyata keçirən konstruksiyalardır. Bu konstruksiyalar xüsusi simvol və ya simvollar ardıcıllığından ibarətdir. Hər bir operator bir və ya bir neçə operand üzərində əməliyyat aparır.
Məsələn sadə toplama proqramını nəzərdən keçirək:
>>> a = 15 >>> b = 20 >>> c = a + b >>> print(c) 35 >>>
Burada c = a + b ifadəsində + simvolu toplama əməlini həyata keçirən cəm operatorudur. Bu ifadədə yer alan a və b dəyişənləri isə operandlardır. Qeyd etmək lazımdır ki, operand kimi həm qiymətlər, həm də dəyişənlər istifadə edilə bilər.
Python proqramlaşdırma dilində operatorlar aşağıdakı kimi sinifləndirilir:
- Hesab operatorları
- Müqayisə operatorları
- Mənimsətmə operatorları
- Məntiq operatorları
- Bit operatorları
- Üzvlük operatorları
- İdentiklik operatorları
Biz növbəti dərslərimizdə yeri gəldikcə bu operatorları daha yaxından incələyəcəyik. Burada qeyd edim ki, bu kitabın məqsədi sadədən mürəkkəbə doğru öyrətmək olduğuna görə, Python dilinin yuxarıda təsnif edilən operatorları ardıcıl şəkildə ələ alınmayacaq.
Tiplər
Hər bir proqramlaşdırma dilində olduğu kimi Python dilində də verilənlərin və eləcə də istifadə olunan dəyişənlərin tipi olur. Lakin Python dilində dəyişənlərin aşkar şəkildə tiplərini təyin etməyə ehtiyac yoxdur. Belə ki, biz bir dəyişənə müəyyən bir qiyməti mənimsədərkən, Python özü bu qiymətə əsasən dəyişənin tipini təyin edir. Əgər bundan sonra biz bu dəyişənə fərqli tipdə bir qiymət mənimsətsək, Python yenə bunu görəcək və dəyişənin tipini dəyişəcək.
Daha öncə yazdığımız Azərbaycan proqramını xatırlayırsınız?
>>> s1 = "Azərbaycan" >>> s2 = "Bakı" >>> n1 = 86.6 >>> n2 = 9600000 >>> print(s1) Azərbaycan >>> print(s2) Bakı >>> print(n1) 86.6 >>> print(n2) 9600000 >>>
Biz burada s1 və s2 dəyişənlərinə sətir tipli məlumat mənimsətdiyimizə görə Python da bu dəyişənlərin tipini str (sətir) tipi olaraq təyin edəcək. Eynilə n1 dəyişəni həqiqi ədəd tipli qiymət aldığı üçün float tipində, n2 dəyişəni də tam ədəd tipli qiymət aldığı üçün int tipində qəbul ediləcək.
Nəzərinizə çatdırım ki, Python proqramlaşdırma dilində int, float və str tiplərindən başqa digər tiplər də var və onlar haqqında növbəti dərslərimizdə bəhs edəcəyik.
Mənimsətmə operatoru
Əvvəlki dərslərimizdə biz mənimsətmə operatorundan (=) istifadə etmişdik. Mənimsətmə operatoruna bəzən mənsubetmə operatoru da deyilir. Bu dərsimizdə mənimsətmə operatoru haqda daha çox şey öyrənəcəyik.
Gəlin aşağıdakı misalları nəzərdən keçirək:
>>> s1 = "Azərbaycan" >>> s2 = "Bakı" >>> n1 = 86.6 >>> n2 = 9600000 >>> print(s1) Azərbaycan >>> print(s2) Bakı >>> print(n1) 86.6 >>> print(n2) 9600000 >>>
Biz burada dörd dəyişəndən (s1, s2, n1, n2) istifadə etdik. Burada mənimsətmə operatoru olan bərabər (=) simvolunun solunda və sağında operandlar yer alır. İndiki halda soldakı operandlar dəyişənlər, sağdakılar isə qiymətlər rolunda çıxış edir. Məsələn s1= “Azərbaycan” ifadəsində s1 operandı dəyişəndir, “Azərbaycan” operandı isə bu dəyişənə mənimsədilən qiymətdir.
Misallardan gördüyünüz kimi, s1 və s2 dəyişənlərinə mənimsədilən qiymətlər (“Azərbaycan” və “Bakı”) dırnaq arasında yazılır, çünki bu məlumatlar sətir tipindədir. Digər iki dəyişənə (n1 və n2) mənimsədilən qiymətlər (86.6 və 9600000) isə ədəd tipində olduqları üçün dırnaq işarələrindən istifadə edilmir. Burada 9600000 qiyməti tam ədəd, 86.6 qiyməti isə həqiqi ədəd tipindədir.
Qeyd etmək lazımdır ki, əksər proqramlaşdırma dillərində olduğu kimi Python dilində də həqiqi ədədlərdə tam və kəsr hissəni ayıran ayırıcı işarə nöqtə (.) simvoludur.
Keçək növbəti misallara:
>>> a = 10 >>> b = a >>> print(b) 10 a = "salam" >>> print(a) salam >>>
Burada iki dəyişəndən (a və b) istifadə edilir. Əvvəlcə biz a dəyişəninə 10 qiymətini mənimsədirik, sonra isə b dəyişəninə a dəyişəninin özünü mənimsədirik. Gördüyünüz kimi bir dəyişənə başqa bir dəyişəni mənimsətmək mümkündür. Bundan sonra b dəyişəninin qiymətini print əmri ilə ekrana çapa veririk. Nəticədən də gördüyünüz kimi bu zaman ekrana a dəyişəninə daha öncədən mənimsədilmiş olan 10 qiyməti çıxır.
Daha sonra biz a dəyişəninə yeni bir qiymət (“salam”) mənimədib ekrana çapa veririk. Gördüyünüz kimi ekrana a dəyişəninin yeni qiyməti çıxır. Və diqqət edin, a dəyişəninə fərqli tipdə olan yeni qiymət mənimsədildiyinə görə a dəyişəni də öz tipini dəyişir. İndiki halda əvvəlcə a dəyişəninin tipi tam ədəd (int), sonra isə sətir (str) tipi olur. Biz irəlidə tipləri daha ətraflı şəkildə nəzərdən keçirəcəyik.
with operatoru
Python 2.5 versiyasından etibarən tətbiq olunan with operatoru əmrlər axınını idarə etmək və kodu sadələşdirmək məqsədilə istifadə olunur. Bu operatorun sintaksisi aşağıdakı kimidir:
with əməliyyat: kod
Burada əməliyyat hər hansı bir obyekt, ifadə və ya konstruksiyadır, kod isə proqram kodudur. Biz əməliyyat olaraq ifadə as dəyişən konstruksiyasından da istifadə edə bilərik:
with ifadə as dəyişən: kod
Gəlin aşağıdakı nümunəni nəzərdən keçirək:
with open('region.txt','w') as f: f.write('Qafqaz')
Yuxarıdakı proqram kodunda əvvəlcə fayl açılır və : simvolundan sonra əmrlər bloku icra olunur. İndiki halda blokda fayla məlumatın yazılması həyata keçirilir, lakin blok daxilində digər əməliyyatlar da nəzərdə tutula bilərdi. Burada with operatorunun istifadəsi ona imkan verir ki, əmrlər blokunun icrası bitdikdən sonra fayl obyekti avtomatik olaraq bağlansın. Fayl obyekti hətta blok daxilində istisna (exception) baş versə də bağlanmış olacaq. Əgər with operatorundan istifadə edilməsəydi, proqram kodu bu qədər sadə alınmayacaqdı.
RUBRİKLƏR
- Gənc Proqramçılara Tövsiyələr
- Kiçik Dərslər
- Kitab Haqda Məlumatlar
- Maraqlı Proqramlar
- Python Dünyası
- Terminlər
- Əsas Alqoritmlər
Harplyk, 1 synp, Abdullaýewa Ş., Metýakubow J., 2021
Учебник по грамотности для 1 класса на туркменском языке.
Фрагмент из книги:
Biz iňlis dilini öwrenýäris. Biziň mugallymymyzyň ady Dursun Rejepowna. Ol bize iňlis dilinde gyzykly kitaplar okap berýär. Men uly bolanda iňlis dili mugallymy boljak.
Okuwçylar, siz ulalanda kim bolmagy arzuw edýärsiňiz?
Uçujy.
Meniň arzuwym bar. Men uly bolanda uçujy bolmak isleýärin. Kakam maňa şeýle diýdi:
– Oňat oka, günde türgenleşik geçir, çydamly bol. Şonda seniň arzuwuň amala aşar.
Uçujylar örän sagdyn we bilimli bolýarlar. Meniň uçujylara höwesim gelýär. Olar giň asmanda uçýar-lar. Men oňat okap, bilimli bolaryn. Maşklary ýerine ýetirip, sagdyn bolaryn. Men hökman uçujy bolaryn.
Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Harplyk, 1 synp, Abdullaýewa Ş., Metýakubow J., 2021 – fileskachat.com, быстрое и бесплатное скачивание.
Скачать pdf
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу
Comments are closed, but trackbacks and pingbacks are open.