První krůčky

Základní interpret

Python je interpretovaný jazyk. Abychom spustili program, potřebujeme interpret. Tím je standardně program python (python.exe na MS Windows), přesnějí řečeno CPython -- interpret jazyka Python napsaný v C. Pokud ho spustíme, měli bychom vidět přibližně toto:

$ python
Python 2.6.6 (r266:84292, Jul 10 2013, 22:43:23) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 

>>> je začátek vstupního řádku, kam můžeme psát příkazy. Např. "Hello world!" už jsme viděli:

>>> print("Hello world!")
Hello world!

Toto je pouze základní interpret. My budeme používat pokročilejší prostředí. Python ukončíte klávesami ctrl + d.

Připravená instalace pro tuto výuku

Pro účely tohoto předmětu je na Linuxu KFE (UNIX učebna, např. raman.fjfi.cvut.cz, curie.fjfi.cvut.cz) k dispozici distribuce Anaconda s verzí Pythonu 3.4 (systémový Python je 2.6.6) spolu s mnoha moduly, které budeme potřebovat. Spusťte v příkazové řádce

source ~jurban/bin/useanaconda.sh

pokud používáte bash, nebo, pokud je váš shell tcsh (což je dost pravděpodobné)

source ~jurban/bin/useanaconda.csh

(svůj shell zjistíte pomocí)

echo $SHELL

(případně si přidejte source příkaz do do svého .tcshrc nebo .bashrc). V tuto chvíli byste měli mít k dispozici příkaz python, po jehož spuštění se objeví

$ python
Python 3.4.3 |Anaconda 2.3.0 (32-bit)| (default, Jun  4 2015, 15:28:02) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 

IPython -- komfortní práce v příkazové řádce

Téměř nezbytým rozšířením Python interpretru pro interaktivní práci v příkazové řádce je IPython. Ten přidává dokončení pomocí tab klávesy (jako např. bash nebo Matlab), vyhledávání v historii a další vylepšení. Pojďme ho zkusit:

$ ipython
Python 2.7.8 |Anaconda 2.0.1 (32-bit)| (default, Aug 21 2014, 18:22:40) 
Type "copyright", "credits" or "license" for more information.

IPython 2.2.0 -- An enhanced Interactive Python.
Anaconda is brought to you by Continuum Analytics.
Please check out: http://continuum.io/thanks and https://binstar.org
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object', use 'object??' for extra details.

In [1]: 

Dokončení tab klávesou (tab completion)

Po napsání jednoho nebo více písmen a zmáčknutí tab klávesy se objeví možná dokončení (podle kontextu). Zkuste napsat pr a zmáčknout tab:

In [1]: pr
%%prun      %precision  %profile    %prun       print       property    

Historie

Historii lze procházet pomocí šipek nahoru a dolů. Historii zobrazíme také příkazem hist (úplně správně je to %hist -- viz níže). V historii lze také hledat. Podobně jako u tab klávesy, po napsání několika písmen se po zmáčknutí šipky zobrazují příkazy z historie, které těmito písmeny začínají.

Nápověda

Nápovědu (nejen) k funkcím zobrazíme funkcí help nebo připojením ? za příslušný příkaz:

In [1]:
help(help)
Help on _Helper in module _sitebuiltins object:

class _Helper(builtins.object)
 |  Define the builtin 'help'.
 |  
 |  This is a wrapper around pydoc.help that provides a helpful message
 |  when 'help' is typed at the Python interactive prompt.
 |  
 |  Calling help() at the Python prompt starts an interactive help session.
 |  Calling help(thing) prints help for the python object 'thing'.
 |  
 |  Methods defined here:
 |  
 |  __call__(self, *args, **kwds)
 |  
 |  __repr__(self)
 |  
 |  ----------------------------------------------------------------------
 |  Data descriptors defined here:
 |  
 |  __dict__
 |      dictionary for instance variables (if defined)
 |  
 |  __weakref__
 |      list of weak references to the object (if defined)

Triky (magics)

IPython přidává k samotným Python příkazům chytré triky, tzv. magics. Poznáme je podle toho, že začínají %. Jedním takovým trikem je %automagick, který nám umožnil použít hist místo %hist.

In [3]: %automagic?
Type:       Magic function
String Form:<bound method AutoMagics.automagic of <IPython.core.magics.auto.AutoMagics object at 0x234a590>>
Namespace:  IPython internal
File:       /usr/lib/python2.7/site-packages/IPython/core/magics/auto.py
Definition: %automagic(self, parameter_s='')
Docstring:
Make magic functions callable without having to type the initial %.

Without argumentsl toggles on/off (when off, you must call it as
%automagic, of course).  With arguments it sets the value, and you can
use any of (case insensitive):

 - on, 1, True: to activate

 - off, 0, False: to deactivate.

Note that magic functions have lowest priority, so if there's a
variable whose name collides with that of a magic fn, automagic won't
work for that function (you get the variable instead). However, if you
delete the variable (del var), the previously shadowed magic function
becomes visible to automagic again.

První jednoduchý program

(I)Python můžeme s úspěchem používat jako kalkulačku:

In [2]:
1 + 8 / 2
Out[2]:
5.0
In [3]:
# spočítáme obsah lichoběžníku
a = 3.5
b = 2.1
v = 77e-1
S = (a + b) * v / 2
print("Obsah lichoběžníku a=%g, b=%g, v=%g je: %g" % (a, b, v, S))
Obsah lichoběžníku a=3.5, b=2.1, v=7.7 je: 21.56

Komentáře

Comments powered by Disqus