Python (proqramlaşdırma dili)

**Python dili** – interpretasiya olunan, yüksək səviyyəli və ümumi-məqsədli proqramlaşdırma dili. 1991-ci ildə Guido van Rossum tərəfindən yaradılmışdır. Python dilinin dizayn fəlsəfəsi boşluqlardan istifadə edərək kod oxunaqlılığını vurğulayır. Bu dilin məqsədi onun dil quruluşu və obyekt-yönümlülüyü ilə proqramçılara xırda və iri həcimli layihələrdə aydın, məntiqli kod yazmağa kömək etməkdir.

Python dinamik yazıla bilən və avtomatik yaddaş idarəetmə xüsusiyyətinə malikdir. Müxtəlif proqramlaşdırma paradiqmalarını dəstəkləyir, buna daxildir strukturlu (qismən, prosedurlu), obyekt-yönümlü və funksional proqramlaşdırma paradiqmaları. Onun geniş standart kitabxanası olduğuna görə Pythona "bataryaları daxildir" də deyilir.

Python 1980-ci illərin sonlarında ABC dilinin davamçısı olaraq yaradıldı. Python 2.0 2000-ci ildə təqdim edildi, o özü ilə birlikdə siyahı anlama və zibil toplayıcı sistemlə birgə referans sayıcı xüsusiyyətlərini gətirdi.

Python 3.0 2008-ci ildə təqdim edildi, o dilin böyük reviziyası olduğundan onun əvvələ-uyğunluğu tam deyil və bir çox Python 2 kodu dəyişikliyə ehtiyac olmadan Python 3-də işləyə bilmir.

Python 2 dili 2020-ci ildə rəsmi olaraq dayandırıldı (ilk dəfə 2015-ildə dayandırılması planlaşdırılmışdı) və Python 2.7.18 son Python 2.7 buraxılışı oldu və beləliklə son Python 2.7 buraxılışı da o oldu. Bunun üçün daha heç bir təhlükəsizlik yamağı yada başqa təkmilləşdirmə buraxılmayacaq. Python 2-lər üçün hər şey dayandırılıb, yalnız Python 3.6.x və daha sonrası dəstəklənir.

Bir çox əməliyyat sistemləri üçün Python interpretatorları mövcuddur. Bir qlobal proqramçılar cəmiyyəti azad və açıq-qaynaq kodlu istinad proqram olan CPythonu yazıb və inkişaf etdirir. Python və CPython-un inkişafı üçün qaynaqlari gəlir məqsədi güdməyən qurum olan Python Software Foundation idarə edir və yönləndirir.

## Tarixi

Guido van Rossum Python-u istisna işləmə bacarığı və Amoeba əməliyyat sisteminin ara üzü olaraq 1980-ci ildə Riyaziyyat və Kompüter Elmləri üzrə Milli Araşdırmalar İnstitutunda olarkən ABC dilinin (bu dil özü də SETL-dən ilham alıb) davamçısı olaraq düşündü. Onun Hazırlanması 1989-cu ilin Dekabr ayında başladı. Van Rossum layihənin əsas inkişaf etdiricisi olaraq bütün yükünü təkcə öz üzərinə götürdü. O bu vəzifəni Python-nun "Həyat üçün Xeyirxah diktatur"-u olaraq 12 iyul 2018-ci ildə özünün "daimi istirahətini" elan edənə qədər davam etdirdi, bu ləqəb ona Python cəmiyyəti tərəfindən onun layihənin uzun müddətli rəhbər qərar qəbul edəni öhdəliyi olduğunu əks etdirmək üçün bəxş edilmişdir. İndi O, öz liderliyini beş nəfərlik idarə şurəsının üzvü olaraq onlarla bölüşür. 2019-cu ilin yanvarında layihəyə rəhbərlik etməkdən ötrü Python-un aktiv özək inkişaf etdiriciləri Brett Cannon, Nick Coghlan, Barry Warsaw, Carol Willing və Van Rossum "İdarəetmə Şurası"-na beş üzv kimi seçildilər.

Python 2.0 böyük yeni xüsusiyyətlərlə birlikdə 16 oktyabr 2000-ci ildə buraxildı, bunlara daxildir dövr-aşkarlayan zibil toplayıcı və Unikod dəstəyi.

Python 3.0 3 dekabr 2008-ci ildə buraxıldı. O dilin böyük revisiyası idi ki, əvvələ uyğunluğu olmadı. Yeni xüsusiyyətlərdən bir çoxu Python 2.6.x və 2.7.x versiya serialarına da integrasiya edildi. Python 3 buraxılışı 2to3 (2-dən 3-ə) alətini ehtiva edir, hansı ki Python 2 kodunun (heç olmuya bir qədərini) Python 3 koduna tərcüməsini avtomatlaşdırır.

Python 2.7 üçün həyatın sonu ilkin olaraq 2015-ci ilə təyin edildi sonra bu tarix 2020-ci ilə ertələndi, çünki böyük miqdarda kodları Python 3-ə çevirmək asan olmayacaqdı.

## Xüsusiyyətləri və fəlsəfəsi
Python müxtəlif paradiqmaları dəstəkləyən proqramlaşdırma dilidir. Obyekt yönümlü proqramlaşdırma, struktur proqramlaşdırma, funksiyonal proqramlaşdırma bunlara misal ola bilər.

### İstifadəsi
Python script dili kimi veb və desktop mühitlərində geniş istifadə olunur. Böyük şirkətlər Google, Yahoo və s python dilindən geniş istifadə edirlər. Python böyük araşdırma mərkəzlərində də (məsələn: CERN kimi) geniş istifadə olunur və elmi hesablamalar üçün çoxlu kitabxanalara malikdir. Bunlara misal olaraq NumPy, SciPy və Matplotlibi göstərmək olar.

## Sintaksisi və semantikası
Pythonun sintaksisi öyrənmək üçün çox sadədir.

#### Salam Dünya
Python 2.7-də klassik "Salam Dunya" proqramı:


```py
print "Hello World"
```


Python 3.x-da


```py3
print("Hello World")
```

Qeyd: 1. yanvar 2020 il tarixindən etibarən Python 2.x versiyalarının dəstəklənməsi rəsmi olaraq dayandırıb. Beləliklə, son 2.x versiyası – Python 2.7 olur.

#### Dəyişənlər
C++ və ya Java kimi dillərdən fərqli olaraq dəyişənləri initializə etməyə gərək yoxdur. Dəyişənə qiymət vermək üçün sadəcə dəyişən adı, `=` işarəsi və dəyişən qiymətini yazmaq lazımdır. Məsələn, `var` adlı dəyişənə 56.89 qiymətinin verilməsi:

```py3
var = 56.89
```


#### Şərhlər
Pythonda şərhlər `#` işarəsi vasitəsilə yaradılır. Məsələn:

```py3
# bu şərhdir
# proqrama heç bir təsiri yoxdur
```


Pythonda birdən çox misralıq şərhləri yoxdur. Ancaq alternativ olaraq, üç dırnaq və yaxud üç apastrofdan istifadə olunur.

#### Bloklar
C-yə bənzər dillərdən fərqli olaraq, Python-da bloklar intendasiya (tablar və ya boşluqlar) vasitəsilə qurulur. Məsələn, sadə if bloku:

```py3
if var == 5:
    var += 6
    print(var)
```


#### Funksiyalar
Funksiyalar `def` vasitəsilə qurulur. Sintaksis belədir:

```py3
def funksiya_adı(arqumentlər):
    funksiya_bədəni
```


Məsələn, salam adlı funksiya bir argument götürür və `Salam ''ad''` yazır:

```py3
def salam(ad):
    print("Salam", ad)
```


Funksiyaların çağırılması isə sadədir:

```py3
funksiya_adı(parametirlər)
```


`salam` funcsiyasının `"`

`"` parametri ilə çağırılması:

```py3
salam("Insan")
#Terminalda Salam Insan yazır
```


### Obyekt yönlü proqramlaşdırma
Python əsas xüsusiyyətlərindən biri obyekt yönlü olmasıdır.
Obyectlər klaslar vasitəsilə yaradılır.
Polifomism və enkapsulyasiya digər dillərə nisbət daha sadədir. Belə ki, obyektləri poliformasiya edərkən hansı eləmentlərin köçürüləcəyini kontrol etmək olmur. Bundan başqa Pythonda obyekt elementləri yalnız iki halda olabilir: açıq və ya gizli. Bunun nəticəsi olaraq Pythonda obyektlərlə işləmək daha asandır.

### Tiplər

## İstinadlar