Další Předchozí Obsah

4. Proměnné

4.1 Vytváření proměnných

Proměnné se v Pythonu vytváří přiřazením hodnoty. Narozdíl od některých jiných jazyků neplatí, že dosud nevytvořená proměnná má implicitní hodnotu. Přístup k nevytvořené proměnné způsobí výjimku NameError. Jména všech objektů (tedy i proměnných) jsou citlivá na velká a malá písmena (case-sensitive).

>>> a=486+100
>>> a
586
>>> promenna=a/2
>>> promenna
293
>>> a = b = c = 0
>>> a, b, c
(0, 0, 0)
>>> x, y, z = 1, 2, 3
>>> x, y, z
(1, 2, 3)

Poslední přiřazení není žádná magická konstrukce, na levé i na pravé straně přiřazení je n-tice a přiřazení se provedlo po složkách.

ADVANCED: Přiřazení není výraz (expression), ale příkaz (statement)> Možnost přiřadit více proměnným najednou tu samou hodnotu je přímo v syntaxi jazyka.

4.2 Rušení proměnných

Lokální proměnné jsou rušeny automaticky v okamžiku opuštění funkce, ve které byly definovány. Je-li potřeba zrušit proměnnou dříve, použijeme příkaz del.

>>> a = ':-)'
>>> a
':-)'
>>> del a
>>> a
Traceback (innermost last):
  File "<stdin>", line 1, in ?
  NameError: a

Interpreter hlásí, že nic takového nezná. (Přesněji: zjistil, že takový objekt nemá v žádném používaném prostoru jmen a vygeneroval výjimku NameError s parametrem a. I k výjimkám se dostaneme.)

Příkaz del může zrušit více objektů najednou, jednotlivé entity se oddělují čárkami, ruší se zleva.

4.3 Příkaz print

Příkaz print na standarní výstup vypíše své parametry.

>>> print 1
1
>>> pi=3.141592653
>>> print pi
3.141592653
>>> print ':-)'
:-)
>>> print pi, 1
3.141592653 1

print (narozdíl od výpisu v interaktivním sezení) vypisuje řetězce bez jakýchkoliv ohraničujících znaků. Má-li print vypsat více výrazů, měly by tyto být od sebe odděleny čárkou. Pokud za parametry není znak ``,'' (čárka), výstup přejde na další řádek. Čárka způsobí odskočení o jednu mezeru.

ADVANCED: Print vypisuje pomocí objektu sys.stdout, nahrazením tohoto objektu můžete jednoduše změnit výstup operátoru. Neexistuje-li takový objekt, či nemá-li definovanou metodu write, vygeneruje se výjimka RuntimeError.


Další Předchozí Obsah