Python

**Python** – interpretuojama, interaktyvi programavimo kalba, sukurta Guido van Rossumo 1990 m. Pirmiausiai ji buvo scenarijų kalba AmoebaOS operacinei sistemai. Python dažniausiai lyginama su Tcl, Perl, Scheme, Java ir Ruby.  Python kuriama kaip atviro kodo projektas.

Python yra daugiaparadigmė programavimo kalba – ji leidžia naudoti keletą programavimo stilių: objektinį, struktūrinį, funkcinį, aspektinį. Python naudoja dinaminį tipų tikrinimą.

Python kūrėjų tikslai buvo sukurti kalbą, kuri yra lengvai skaitoma, išraiškinga, išreikštinė, paprasta (tinkama neprofesionaliems programuotojams). Nors pradžioje ji buvo kuriama kaip scenarijų kalba, dabar ji naudojama ir dideliems programiniams projektams, tokiems kaip Zope. Taip pat labai paplitusi Linux sistemose.

## Savybės
* Viskas yra objektai; galima sukurti klases, praplečiančias standartinius duomenų tipus
* Klases ir funkcijas lengva dokumentuoti naudojant dokumentacijos eilutes („docstrings“); dokumentacija pasiekiama ir programos darbo metu
* Klasės ir funkcijos taip pat yra pirmos klasės objektai
* Galimas paveldėjimas iš keleto klasių
* Galima kurti anonimines funkcijas
* Leksinis apgaubimas
* Labai svarbus kodo išdėstymas ()
* Modulių sistema

## Privalumai
* Labai spartus programavimas, ypač jei dirba pirmasis programuotojas kuriam nereikia aiškintis esamo kodo ir kol neprireikia *numpy* bei kitų spartesniam vykdymui reikalingų galimybių. 
* Dėl lakoniškos sintaksės programų tekstai trumpesni nei kitomis kalbomis užrašyti panašūs algoritmai.
* Multi platforminė (tinka Windows/Linux/Mac OS, tinka telefonams su mobiliosiomis operacinėmis sistemomis, kaip Symbian OS)
* Gerai tinka ir žiniatinklio (pvz, YouTube), ir darbalaukio (pvz, OpenDict) programų kūrimui.

## Trūkumai
* Python programa vykdoma dešimtis ir kai kada šimtus kartų lėčiau nei panaši C++ programa. Tačiau daug Python programinės bibliotekos iš tiesų parašyta C++. Kodas kuris beveik vien kviečia įvairias bibliotekines funkcijas, nieko nedaro pats, neturi ciklų, gali būti vykdomas panašiu greičiu.
* Labai paprasta sintaksė nesaugo nuo programavimo klaidų kurios labiau „žodingoje“ kalboje iš principo negalimos. Daug nutylėjimų apsunkina svetimo kodo supratimą: dažnai neaišku kas iš tiesų yra funkcijos parametrai, rezultatas, ypač jei tai sudėtingesnės duomenų struktūros. 
* Ribotos lygiagretaus programavimo galimybės: nors ir įmanoma sukurti keletą gijų, dažniausiai vienu metu vykdoma tik viena.

## Programiniai įgyvendinimai
Pagrindinis kalbos įgyvendimas yra vadinamas CPython (kadangi rašytas C kalba), ir kuriamas Python fondo. Taip pat yra įgyvendimas Jython, parašytas Java kalba, bei IronPython, veikiantis .NET platformoje. PyPy – python interpretatorius, parašytas pačiu python.

## Pavyzdžiai
Paprasta *Python* programa „Sveikas pasauli!“:

```python
kreipinys = "Pasauli" # Kintamųjų aprašyti nereikia
print (f"Sveikas, {kreipinys}!") # Kintamojo naudojimas teksto eilutėje
```


Funkcija, suskaičiuojanti faktorialą:

```python
def factorial(x):
    """factorial(x)
    Ši funkcija suskaičiuoja skaičiaus X faktorialą."""

    return 1 if x == 0 else x * factorial(x-1)
```


Teigiamų skaičių vidurkio skaičiavimas šešių skaičių sąraše:

```python
import numpy as np

a = np.array([1, 2, 3, -1, -2, -3])
np.nanmean(np.where(a>=0,a,np.nan))
```


Išspausdintų 2. *numpy* yra Python sisteminė biblioteka matricų algebrai ir kitiems panašiems skaičiavimams. Ją naudojant, Python galima skaičiuoti tiek pat greitai kaip ir kitomis programavimo kalbomis.

## Išnašos

## Nuorodos
* Oficialus Python tinklalapis, iš kur galima atsisiųsti Python įvairioms operacinėms sistemoms
* Python mokymosi aplinka RuR, paremta logo grafikos idėjomis
* Python šaltiniai lietuvių kalba