Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
dev:python [2022/01/26 11:37]
127.0.0.1 external edit
dev:python [2025/11/02 20:56] (current)
tomas
Line 2: Line 2:
  
 ======Python / Jython====== ======Python / Jython======
- 
- 
 Jython je iplementace Pythonu cela napsana v Jave. Jython je iplementace Pythonu cela napsana v Jave.
  
  
 ====Externi odkazy==== ====Externi odkazy====
- 
- 
 [[http://howto.py.cz/index.htm|Učíme se programovat v jazyce Python]]\\ [[http://howto.py.cz/index.htm|Učíme se programovat v jazyce Python]]\\
 [[http://www.abclinuxu.cz/clanky/programovani/python-a-pyqt-1-uvod|Python a Qt 1 (Uvod)]] na ABCLinuxu\\ [[http://www.abclinuxu.cz/clanky/programovani/python-a-pyqt-1-uvod|Python a Qt 1 (Uvod)]] na ABCLinuxu\\
Line 40: Line 36:
  
 ====Prikazy==== ====Prikazy====
- 
- 
 python ... spusti interaktivni prekladac\\ python ... spusti interaktivni prekladac\\
 python -c 'print "Ahoj"' ... spusti prikaz\\ python -c 'print "Ahoj"' ... spusti prikaz\\
Line 51: Line 45:
  
  
 +====Virtualni prostredi + instalace doplnku mitmproxy pro VP====
 +sudo yum install python-virtualenv\\
 +virtualenv -p /usr/local/bin/python2.7 ~/Desktop/mitmproxy\\
 +cd ~/Desktop/mitmproxy\\
 +. bin/activate\\
 +python -m venv ADRESAR ... vytvoří virtuální prostředí my_project_env\\
 +source ADRESAR/bin/activate ... aktivuje virtuální prostředí\\
 +pip install mitmproxy ... nainstaluje balíček mitmproxy - buď globálně, nebo do aktivovaného virtuálního prostředí\\
 +python3 -m pip install -r requirements.txt ... instalace z **requirement.txt** souboru\\
 +%%python3.12 -m pip install --user ddgs==1.2%% ... jiný způsob na instalaci balíčku, jen pro daného uživatele\\
 +[[https://github.com/pypa/pipx|pipx]] install pycowsay ... nainstaluje lokálně pro daný adresář knihovnu (nemusí se používat venv)\\
 +pipx list ... seznam nainstalovaných knihoven\\
 +pipx run skript parametry ... spustí python aplikaci s parametrama a nainstalovanýma knihovnama\\
 +[[https://pypi.org/project/uv/|uv]] ... jeden nástroj na nahrazení pip, poetry, pyenv, twine, virtualenv\\
  
-====Kompilace Python 2.7 s vlastni volbou (pip) na RH==== 
-yum groupinstal "Development tools"\\ 
-yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel libffi-devel libxml2-devel libxslt-devel libjpeg-turbo-devel\\ 
-cd /opt\\ 
-wget --no-check-certificate https://www.python.org/ftp/python/2.7.12/Python-2.7.12.tar.xz\\ 
-tar xf Python-2.7.12.tar.xz\\ 
-cd Python-2.7.12\\ 
-./configure --prefix=/usr/local --with-ensurepip=install\\ 
-make\\ 
-make altinstall\\ 
  
-====Virtualni prostredi + instalace doplnku mitmproxy pro VP==== +====Moduly==== 
-sudo yum install python-virtualenv +Moduly se dají stáhnout na [[https://pypi.org/|pipy]], nebo napřgithubu
-virtualenv -p /usr/local/bin/python2.7 ~/Desktop/mitmproxy +
-cd ~/Desktop/mitmproxy +
-bin/activate +
-pip install mitmproxy +
-mitmproxy +
-deactivate+
  
-====Promenne a prace s nimi==== 
  
 +[[https://pypi.org/project/boto3/|boto3]] ... AWS SDK\\
  
 +
 +====Promenne a prace s nimi====
  
 isinstance(PROMENNA, str) ... vrati True/False, jestli je PROMENNA typu string. typy promennych: int, long, long, complex,  isinstance(PROMENNA, str) ... vrati True/False, jestli je PROMENNA typu string. typy promennych: int, long, long, complex, 
Line 87: Line 81:
  
  
-==Retezec==+=== Retezec ===
  
 TEXT = "ahoj %20s" % 'Franto' + ' jak se mas' ... definice promenne, doplni se do 20 znaku text (ci promenna) za procentama\\ TEXT = "ahoj %20s" % 'Franto' + ' jak se mas' ... definice promenne, doplni se do 20 znaku text (ci promenna) za procentama\\
Line 103: Line 97:
 TEXT="Ahoj %(jmeno)s, uz jsme %(poradi)i"%zaznam ... vlozi zaznamy ze slovniku (hashe)\\ TEXT="Ahoj %(jmeno)s, uz jsme %(poradi)i"%zaznam ... vlozi zaznamy ze slovniku (hashe)\\
 TEXT2 = TEXT + " pane" ... spoji retezce, pokud se jedna o retezce\\ TEXT2 = TEXT + " pane" ... spoji retezce, pokud se jedna o retezce\\
-TEXT3 = TEXT * 3 ... znasobi se text 3x\\+TEXT3 = TEXT * 3 ... znasobi (zopakuje) se text 3x za sebou\\
 TEXT="Jmeno %10s, vek %-5d, vaha %f" % ("Tomas", 30, 75.3) ... formatovani retezce, Tomas na 10 znaku, zarovna z prava, 30 na 5 znaku, zarovna zleva\\ TEXT="Jmeno %10s, vek %-5d, vaha %f" % ("Tomas", 30, 75.3) ... formatovani retezce, Tomas na 10 znaku, zarovna z prava, 30 na 5 znaku, zarovna zleva\\
  
Line 136: Line 130:
  
  
-==pole (seznam, array)==+=== pole (seznam, array) ===
  
  
Line 171: Line 165:
  
  
-==Slovnik (Asociativni pole, hash)==+=== Slovnik (Asociativni pole, hash) ===
  
  
Line 183: Line 177:
  
  
-==cislo==+=== cislo ===
  
  
Line 204: Line 198:
  
  
-==Logicke promenne==+=== Logicke promenne ===
  
  
Line 221: Line 215:
  
  
-====Podminky, cykly a funkce try====+==== Podminky, cykly a funkce try ====
 pass ... prazdne telo pro if/while/for napr. pro testovaci ucely\\ pass ... prazdne telo pro if/while/for napr. pro testovaci ucely\\
  
Line 260: Line 254:
 <code>For i in pole: <code>For i in pole:
     prikazy</code>     prikazy</code>
 +for i in range(5) ... provede kroky pro 1, 2, 3, 4, 5\\
  
 Cyklus For-else, priradi postupne do promenne i jednotlive prvky pole a provede s nimi prikazy1, pote prikazy2:\\ Cyklus For-else, priradi postupne do promenne i jednotlive prvky pole a provede s nimi prikazy1, pote prikazy2:\\
Line 295: Line 290:
  
  
-====Zakladni prikazy====+==== Zakladni prikazy ====
 # komentar ... komentar, bud na samostatnem radku, ci za prikazem\\ # komentar ... komentar, bud na samostatnem radku, ci za prikazem\\
 print "Ahoj \t Nazdar" ... tisk na obrazovku, \t tabulator\\ print "Ahoj \t Nazdar" ... tisk na obrazovku, \t tabulator\\
 print "Ahoj %-10s, mam %d kluky." % "Ivane", 3 ... formatovani tisku\\ print "Ahoj %-10s, mam %d kluky." % "Ivane", 3 ... formatovani tisku\\
 +print('Poslední pismeno "{}"'.format("pismeno"[-1])) ... formátování, napíše poslení písmenu z textu\\
 sys.stdout.write("Hello World!\n") ... Dalsi tisk na obrazovku\\ sys.stdout.write("Hello World!\n") ... Dalsi tisk na obrazovku\\
 type(PROMENNA) ... napise typ promenne\\ type(PROMENNA) ... napise typ promenne\\
 TEXT=raw_input("Napis neco: ") ... vstup z klavesnice\\ TEXT=raw_input("Napis neco: ") ... vstup z klavesnice\\
 TEXT=input("Napis neco: ") ... vstup z klavesnice\\ TEXT=input("Napis neco: ") ... vstup z klavesnice\\
 +cislo=int(input("Napiš číslo: ")) ... vstup z klávesnice, převede na číslo\\
 sys.exit (1) ... ukonci program a vrati hodnotu 1\\ sys.exit (1) ... ukonci program a vrati hodnotu 1\\
  
-====Prace se soubory====+==== Prace se soubory ====
 file2 = open (/home/a/b.txt, 'w') ... otevre soubor pro zapis. Pokud existuje, prepise jej\\ file2 = open (/home/a/b.txt, 'w') ... otevre soubor pro zapis. Pokud existuje, prepise jej\\
 file2 = open (/home/a/b.txt, 'a') ... otevre soubor pro zapis. Pokud existuje, zapisuje na konec souboru\\ file2 = open (/home/a/b.txt, 'a') ... otevre soubor pro zapis. Pokud existuje, zapisuje na konec souboru\\
Line 324: Line 321:
 pickle.load(file) ... z balicku pickle - nace datove struktory ze souboru\\ pickle.load(file) ... z balicku pickle - nace datove struktory ze souboru\\
  
-====Definice funkci a importovani funkci z knihoven====+==== Definice funkci a importovani funkci z knihoven ====
 execfile('c:/temp/script/testFunctions.py') ... spusti jiny python script\\ execfile('c:/temp/script/testFunctions.py') ... spusti jiny python script\\
 import [[http://docs.python.org/library/sys.html|sys]] ... importute knihovnu sys, ktera umoznuje pristup k nekterym promennym interpretu python\\ import [[http://docs.python.org/library/sys.html|sys]] ... importute knihovnu sys, ktera umoznuje pristup k nekterym promennym interpretu python\\
Line 369: Line 366:
  
  
-====Modul [[http://docs.python.org/library/sys.html|sys]]====+==== Modul [[http://docs.python.org/library/sys.html|sys]] ====
 AAA=sys.argv[0] ... prvni argument z volaniprogramu\\ AAA=sys.argv[0] ... prvni argument z volaniprogramu\\
 len(sys.argv) ... pocet argumentu\\ len(sys.argv) ... pocet argumentu\\
Line 376: Line 373:
 sys.path ... ukaze cesty\\ sys.path ... ukaze cesty\\
  
-====Modul [[http://docs.python.org/library/os.html|os]]====+==== Modul [[http://docs.python.org/library/os.html|os]] ====
  
 os.path.exists("/bbb/aaa") ... vrati true, pokud soubor/adresar existuje\\ os.path.exists("/bbb/aaa") ... vrati true, pokud soubor/adresar existuje\\
Line 382: Line 379:
 os.environ.get('PATH") ... vrati obsach promenne prostredi\\ os.environ.get('PATH") ... vrati obsach promenne prostredi\\
  
-====Modul java.lang.System - jython====+==== Modul java.lang.System - jython ====
 system.getProperty('line.separator') ... ziska hodnotu promenne line.separator\\ system.getProperty('line.separator') ... ziska hodnotu promenne line.separator\\
  
-====Modul java.io - jython====+==== Modul java.io - jython ====
 propsfile = java.io.FileInputStream("./properties.conf") ... Udela ukazatel na soubor\\  propsfile = java.io.FileInputStream("./properties.conf") ... Udela ukazatel na soubor\\ 
  
-====Modul java.util - jython====+==== Modul java.util - jython ====
  
 props = java.util.Properties() ... definice promenne prop jako javovskeho objektu s nastavenim\\ props = java.util.Properties() ... definice promenne prop jako javovskeho objektu s nastavenim\\
Line 394: Line 391:
 print props.getProperty("A") ... vypise hodnotu A\\ print props.getProperty("A") ... vypise hodnotu A\\
  
-====Modul [[http://docs.python.org/library/re.html|re]]====+==== Modul [[http://docs.python.org/library/re.html|re]] ====
 Prace s regularnimi vyrazy\\ Prace s regularnimi vyrazy\\
  
-====Modul [[http://docs.python.org/library/string.html|string]]====+==== Modul [[http://docs.python.org/library/string.html|string]] ====
 Prace s retezci\\ Prace s retezci\\
  
-====knihovna pexpect====+==== knihovna pexpect ====