-2 *Latinitas huius rei dubia est. Corrige si potes. Vide {{latinitas}}.*

*Vide etiam paginam discretivam:* Python (discretiva)

**Python** est hodierna lingua programmandi quae anno 2016 manet in tertio loco inter linguas ad programmandum maxime adhibitas , post C et Java. Syntaxis consilio pondus dat brevitati et facilitati legendo, ut programmata in lineis scribi possunt paucioribus, quam linguis aliis sicut C vel Java.

Lingua nomen accepit a titulo *Monty Python's Flying Circus*. Programmatores huius linguae periti p*ythonistae* appellantur et peculiaris modus quo ei programmata scribunt appellatur *pythonicus*. 

Haec lingua mutiplex paradigmata sinet sicut imperativum et obiecto spectans. Consilio in se multa specimina instrumenta quam progressiva offert programmatoribus sicut dictionaria (hash tabula), inventaria, functiones lambda, generatores, et classes. Et lingua facile extendi potest permultis librariis programmationis, cum alligationibus ad libraria aliarum linguarum sicut Fortran, Java, et C.

Salve, munde!
-------------

Infra ostenditur programma minimum, quod "Salve, munde!" in monitorium mittit.

```
print("Salve, munde!")

```

Historia
--------

Python circa annum 1980 primum concepta est, sed solum anno 1989 a Guido van Rossum creata est. Van Rossum, cum auctor princeps Pythonis fuit, postea "Benevolens Dictator Perpetuo" (Anglice "Benevolent Dictator for Life") dictus est.

Python 2.0 die 16 Octobris 2000 divulgatur, Python 3.0 autem December 2008.

Nomen
-----

Nomen Python derivatum est a titulo pelliculae *Monty Python's Flying Circus*. Qua propter in programmatis nomina alia e hac pellicula adhibta saepe invenitur.

Syntaxis
--------

Python indentationes, non ceruchos, adhibet ut codices varios separet. Exempli gratia:

```
def fib(n):
    if n < 2:
        return n
    else:
        return fib(n - 1) + fib(n - 2)

```

### Declarationes

Abssimiliter linguae C, non necesse est genus scribere.

```
num = 1
num2 = num \* 3 + 456
nomen = "Python"
conditio = False
series = [1, 5, 12, 123]
series\_immutabilis = (123, 345, 'salve!')

```

### Assertiones / Sententiae

* `print` est dictum quod textum in monitorium mittit.

```
print "Salve!"

```

* `if` (Latine "si")

```
if num > 5:
    print "num est maior quam quinque!"
elif num < 5:
    print "num est minor quam quinque!"
else:
    print "num aequat quinque!"

```

* `for` aliquotiens currit.

```
for i in range(10):
    print i

```

* `while` (Latin "dum") currit dum conditio vera est.

```
num = 2
while num < 10:
    num += 1
    print num

```

* `try` (Latine "conor") conatur fungi "conor" partem. si non secunde functus est, "praeter" partem fungitur. tandem, "tandem" partem semper fungitur, si "tandem" pars adest.

```
try:
    num = 10 / 0 # malus!
except ZeroDivisionError:
    print "illum non potes!"
finally:
    print "conficio!"

```

* `class` rem novam creat.

```
class Canis:
    def \_\_init\_\_(self, nomen):
        self.nomen = nomen

    def latra(self):
        print "Woof!"

    def dic\_nomen(self):  # si canes dicere possint
        print "mihi nomen est", self.nomen

```

* `def` (Latine "definio") functionem definit.

```
def add(num1, num2):
    return num1 + num2

```

* `with` (Latine "cum")

```
with open("data.txt") as fin:
    data = fin.read()
    # process data

```

* `pass` est dictum quod nihil facit.

```
def nihil\_facio():
    pass

```

* `assert` (Latine "affirmo")

```
num = 9 / 3
assert num == 3 # bonus
assert num == 4 # hic tollit <code>AssertionError</code>

```

* `yield` (Latine "cedo")

```
def crea\_generatorem():
    mylist = range(4)

    for i in mylist:
        yield i \* i

gen = crea\_generatorem()
for i in gen:
    print i
# exitus:
# 0
# 1
# 4
# 9

```

* `exec` (Latine "fungor") fungitur series characterum codicis Pythonis.

```
code = "print 'salve, munde!'"
exec code   # "salve, munde!" in quadrum visificum mittit

```

* `eval`

```
num = eval(3 \* 5)
print num   # 15

```

### Operatores

Python habet nonnullos operatores:

* Operatores arithmetici simplices: `+` (additio), `-` (subtractio), `\*` (multiplicatio), `/` (Python 2: integer divisio, Python 3: decimus divisio), et `\*\*` (exponentio)
* Operatores complexi: `+=`, `-=`, `\*=`, `/=`, `\*\*=`
* Operatores comparabilis: `<`, `>`, `<=`, `>=`, `==` (aequalitas pretii, non loci memoriae sicut lingua C), et `!=`
* Operatores booleani: `and`, `or`, `not`
* Operatores bitwise: `&` (et), `|` (vel), `^` (aut)
* Operator loci memoriae: `is`
* Operator ternarius: `*pars-vera*` `if` `*conditio*` `else` `*pars-falsa*`

### Genera

| Genus | Descriptio | Exemplum |
| --- | --- | --- |
| `str` | series immutabilis characterum | `'Vicipaedia'``"Vicipaedia"``"""Spanningmultiplelines""` |
| `byte` | series immutabilis bytum | `b'Some ASCII'``b"Some ASCII"` |
| `list` | series mutabilis quae genera varia habere potest | `[4.0, 'string', True]` |
| `tuple` | series immutabilis quae genera varia habere potest | `(4.0, 'string', True)` |
| `set`, `frozenset` | inordinatus, nulla duplicata habet | `{4.0, 'string', True}` `frozenset([4.0, 'string', True])` |
| `dict` | collectio mutabilis parum clavum et pretiorum | `{'key1': 1.0, 3: False}` |
| `int` | numerus immutabilis (integer) infinitae quantitatis | `42` |
| `float` | numerus immutabilis (decimus) | `3.141592654` |
| `complex` | numerus immutabilis (intricatus) cum partis realiis et imaginariis | `3+2.7j` |
| `bool` | pretium immutabilis veritatis (verus aut falsus) | `True``False` |

Implementationes
----------------

* CPython
* Unladen Swallow
* Jython (Java)
* IronPython (.NET)
* Stackless Python
* ChinesePython

### Compilatra

* Psyco (ad codex machinae)
* Pyjamas (ad JavaScript)
* Shed Skin (ad C++)
* Pyrex (ad C)
* Cython (ad C)

Nexus interni
-------------

* Perl
* PHP

Nexus externi
-------------


|  |  |
| --- | --- |
|  | **Vicimedia Communia** plura habent quae ad **Python (lingua programmandi)** spectant. |

* 

1. ↑