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əç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.

İfadələr

   İlk dərslərimizdən bu yana biz bir çox yerdə ifadələr anlayışı ilə qarşılaşdıq. Artıq bu terminin tərifini verməyin vaxtı gəlib çatdı. İfadələr, proqramlaşdırma dilində elementar əməli təsvir edən sintaksis vahidlər ardıcıllığıdır.

   İfadələr rolunda qiymətlər, dəyişənlər və əməliyyatlar çıxış edə bilər:

>>> 37 
37
>>> x = 42
>>> x
42
>>> print(x)
42
>>> x + 13
55
>>>

   Yuxarıdakı misallarda 37 qiyməti (birinci sətirdə olan) və x dəyişəni ifadədir. Eyni zamanda x = 42 , print(x)x + 13 əməliyyatları da ifadə sayılır.

   Python-un interaktiv rejimində yazılan ifadələr icra olunur və əgər varsa nəticələri ekrana çıxarılır:

>>> n = 114 
>>> m = 96
>>> a = "Oxu!"
>>> a
'Oxu!'
>>> print(a)
Oxu!
>>> type("Oxu!")
<class 'str'>
>>> 33 + 33 + 33
99
>>>

   Yuxarıdakı misallarda ilk üç sətirdəki ifadələr (mənimsətmə əməliyyatları) sadəcə icra olunur, amma ekrana heçnə çıxmır. Digər sətirlərdəki ifadələrin icrası isə həm də ekrana müvafiq nəticələri çıxarır.

   Burada bir məqama da diqqət yetirmək lazımdır. Belə ki, a dəyişəni bir ifadə olaraq icra olunanda nəticə ekrana tək dırnaq arasında çıxır. Amma biz a dəyişənini print() funksiyası ilə çapa verəndə ekrana çıxan nəticə dırnaqsız olur.

   Gəlin eyni ifadələri skriptdə yazaq və proqram faylını çalışdıraq:

n = 114 
m = 96
a = "Oxu!"
a
print(a)
type("Oxu!")
33 + 33 + 33

   Yuxarıdakı proqram icra olunduqda Python Shell pəncərəsində qarşınıza aşağıdakı mənzərə çıxacaq:

>>>
Oxu!
>>>

   Nə baş verdi? Burada bütün ifadələrin icra olunmasına baxmayaraq yalnız print(a) funksiyasının icrasının nəticəsində ekrana məlumat çıxdı.

   Yekunda ifadələr ilə bağlı bir məsələni də qeyd edək. Python-un interaktiv rejimində ən son ifadənin nəticəsi xüsusi bir dəyişəndə ( _ simvolunda) yadda saxlanılır. Aşağıdakı proqramda buna aid nümunələr verilmişdir:

>>> a = 1.2 
>>> a
1.2
>>> print(_)
1.2
>>> _ + 1
2.2
>>> a = _ 
>>> print(a)
2.2
>>> type(a)
<class 'float'>
print(_)
<class 'float'>
>>>

   Misallardan da gördüyünüz kimi, interpretator ən son ifadənin nəticəsini _ dəyişənində yadda saxlayır.