3
Základní příkazy

### Přiřazení

>>> x = 1
>>> y = 2
>>> A, B = x, y       # ntice
>>> A, B
(1, 2)
>>> [C, D] = [x, y]   # seznamy
>>> C, D
(1, 2)
>>> x, y = y, x       # prohození hodnot ntic
>>> x, y              # ekvivalent T=x; x=y; y=T
(2, 1)

and	assert	break	class	continue
def	del	elif	else	except
exec	finally	for	from	global
if	import	in	is	lambda
not	or	pass	print	raise
return	try	while		

>>> x = 0             # x je svázáno s celým číslem
>>> x = "Hello"       # ... teď s řetězcem
>>> x = [1, 2, 3]     # ... a teď se seznamem

### Výrazy

### print

>>> print "a", "b"
a b
>>> print "a" + "b"
ab
>>> print "%s...%s" % ("a", "b")
a...b

>>> print 'hello world'       # vypíše řetězec
hello world

>>> 'hello world'             # výpis výrazu na příkazové řádce
'hello world'

>>> import sys                # a takhle to dělají ti “tvrdí”
>>> sys.stdout.write('hello world\n')
hello world

### Podmínky

if <podmínka1>:      # if podmínka
    <příkazy1>       # ... a příslušné příkazy
elif <podmínka2>:    # nepovinné části elif
    <příkazy2>
else:                # nepovinná část else
    <příkazy3>

>>> if 1:
...     print 'true'
...
true

>>> if not 1:
...     print 'true'
... else:
...     print 'false'
...
false

>>> x = 'killer rabbit'
>>> if x == 'roger':
...     print "how's jessica?"
... elif x == 'bugs':
...     print "what's up doc?"
... else:
...     print 'Run away! Run away!'
...
Run away! Run away!

>>> choice = 'ham'
>>> print {'spam':  1.25,        # 'switch' a la slovník
...        'ham':   1.99,        # příp. else pomocí has_key()
...        'eggs':  0.99,
...        'bacon': 1.10}[choice]
1.99

>>> if choice == 'spam':
...     print 1.25
... elif choice == 'ham':
...    print 1.99
... elif choice == 'eggs':
...    print 0.99
... elif choice == 'bacon':
...     print 1.10
... else:
...     print 'Bad choice'
...
1.99

x = 1
if x:
    y = 2
    if y:
        print 'Blok 2'
    print 'Blok 1'
print 'Blok 0'

L = ["Good",
     "Bad",
     "Ugly"]              # přes otevřený pár závorek ...

if a == b and c == d and \
   d == e and f == g:
       print 'olde'       # ... nebo přes zpětné lomítko ...

if (a == b and c == d and
    d == e and e == f):
       print 'new '       # ... které ale většinou není nutné

x = 1; y = 2; print x     # několik příkazů na řádce

if 1: print 'hello'       # celý složený příkaz na jedné řádce

>>> 2 < 3, 3 < 2          # menší než vrací 0 nebo 1
(1, 0)

>>> 2 or 3, 3 or 2        # or vrací levý, pokud je pravda ...
(2, 3)
>>> [] or 3               # jinak druhý, ať už je pravda ...
3
>>> [] or {}              # nebo nepravda
{}

>>> 2 and 3, 3 and 2      # vrací levý, pokud je nepravda ...
(3, 2) 
>>> [] and {}             # jinak pravý
[]
>>> 3 and []
[]

### while smyčky

while <podmínka>:    # uvozující řádek s podmínkou
    <příkazy1>       # (odsazený) kód vnořeného bloku
else:                # nepovinná část else
    <příkazy2>

>>> while 1:
...     print 'Stiskem Ctrl-C vypnete interpretr'

>>> x = 'spam'
>>> while x:
...     print x,
...     x = x[1:]    # odřežeme první znak (výběrem části)
...
spam pam am m

>>> a=0; b=10
>>> while a < b:     # jedna z možností
...     print a,
...     a = a+1
...
0 1 2 3 4 5 6 7 8 9

while <podmínka1>:             # break i continue kdekoli ve ...
    if <podmínka2>: break      # vnořeném bloku. break – konec, 
    if <podmínka3>: continue   # continue - na uvozující řádek
    <příkazy1>
else:                          # pokud neukončeno přes break
    <příkazy2>

while 1: pass        # stiskem Ctrl-C ukončíte interpretr

x = 10
while x:
    x = x-1
    if x % 2 != 0: continue    # liché číslo nevypisovat
    print x,

# y nastavíme na (námi zvolené) testované číslo 
x = y / 2
while x > 1:
    if y % x == 0:                  # zbytek po cel. dělení
        print y, 'je dělitelné', x
        break                       # přeskočíme else část
    x = x-1
else:                               # “normální” konec
    print y, 'je prvočíslo'

### for smyčky

for <cíl> in <procházený objekt>:       # přiřazení
    <příkazy1>                          # používáme cíl
else:                                   # neukončeno přes break?
    <příkazy2>

for <cíl> in <procházený objekt>: 
    <příkazy1>
    if <podmínka1>: break               # konec bez else
    if <podmínka2>: continue            # na uvozující řádek
else:                                   # neukončeno přes break?
    <příkazy2>

>>> for x in ["spam", "eggs", "ham"]:
...     print x,
...
spam eggs ham

>>> sum = 0
>>> for x in [1, 2, 3, 4]:
...     sum = sum + x
...
>>> sum
10

>>> prod = 1
>>> for item in [1, 2, 3, 4]: prod = prod * item
...
>>> prod
24

>>> S, T = "lumberjack", ("and", "I'm", "okay")
>>> for x in S: print x,
...
l u m b e r j a c k

>>> for x in T: print x,
...
and I'm okay

>>> T = [(1, 2), (3, 4), (5, 6)]
>>> for (a, b) in T:                           # přiřazuje ntici
...     print a, b
...
1 2
3 4
5 6

>>> data = ["aaa", 111, (4, 5), 2.01]         # procházené a ...
>>> hledane = [(4, 5), 3.14]                  # hledané prvky
>>>
>>> for hledany in hledane:                   # pro hledané
...     for aktualni in data:                 # procházej data
...         if aktualni == hledany:           # a kontroluj
...             print hledany, "byl nalezen"
...             break
...     else:
...         print hledany, "nebyl nalezen!"
...
(4, 5) was found
3.14 not found!

>>> for hledany in hledane:                 # pro hledané
...     if hledany in data:                 # prochazi a 
...         print hledany, "byl nalezen"    # kotroluje Python
...     else:
...         print hledany, "nebyl nalezen!"
...
(4, 5) was found
3.14 not found!

>>> seq1 = "spam"
>>> seq2 = "scam"
>>>
>>> res = []                     # začínáme s prázdným seznamem
>>> for x in seq1:               # procházíme první posloupností
...     if x in seq2:            # je prvek obsažen i ve druhé?
...         res.append(x)        # přidej ho k výsledku
...
>>> res
['s', 'a', 'm']

>>> range(5), range(2, 5), range(0, 10, 2)
([0, 1, 2, 3, 4], [2, 3, 4], [0, 2, 4, 6, 8])

>>> X = 'spam'
>>> for item in X: print item,   # procházíme posloupností
...
s p a m

>>> i = 0
>>> while i < len(X):            # while smyčka
...     print X[i],; i = i+1
...
s p a m

>>> for i in range(len(X)): print X[i], 
...
s p a m

>>> for i in range(3): print i, 'Pythons'
...
0 Pythons
1 Pythons
2 Pythons

### Oblíbené problémy

### Shrnutí

### Cvičení

for i in range(50):
    print 'hello %d\n\a' % i 

seznam = [1, 2, 4, 8, 16, 32, 64]
hledana = 5
nalezeno = citac = 0
while not nalezeno and citac < len(seznam):
    if 2 ** hledana == seznam[citac]:
        nalezeno = 1
    else:
        citac = citac+1
if nalezeno:
    print 'nalezena na pozici', citac
else:
    print 'nenalezena'

C:\Python> python mocniny.py
nalezena na pozici 5