NPRG030
)ssh
ssh [cas jmeno]@u-pl[1-25].ms.mff.cuni.cz
dir
vs. ls
atd.)sftp
sftp [cas jmeno]@u-pl[1-25].ms.mff.cuni.cz
put [umístění souboru v lokalním pc] [cílové umístění na vzdáleném pc]
get [umístění souboru na vzdaleném pc] [cílové umístění na lokálním pc]
sftp
; pro umístění přímo do adresáře, ze kterého se příkaz volal, stačí místo cesty zadat tečku)random
: random.seed()
, random.random()
, random.randint()
, random.shuffle()
, random.choice()
, random.choices()
, random.sample()
random
.
import random
random.seed(123)
print(random.random())
print(random.randint(2, 6))
pismena = ['a', 'b', 'c', 'd']
random.shuffle(pismena)
print(pismena)
print(random.choice(pismena))
print(random.choices(pismena, k=2)) # s opakováním
print(random.sample(pismena, k=2)) # bez opakování
math
: math.ceil()
, math.floor()
, math.pow()
, math.sqrt()
, math.exp()
, math.log()
, math.log2()
, math.comb()
, math.perm()
, math.factorial()
, math.pi
def
; na vstupu přijímají libovolný počet argumentů/parametrů, které mohou být i předvyplněnéa
, b
a c
?
def pricti_sedm(cislo, nasobek=1):
if cislo % 2 == 0:
return (cislo + 7) * nasobek
return cislo + (7 * nasobek)
a = pricti_sedm(5)
b = pricti_sedm(5, 2)
c = pricti_sedm(cislo=6, nasobek=3)
global
uvnitř funkcí
cislo = 5
def pricti_hodnotu(hodnota):
global cislo
cislo = cislo + hodnota # samostatně bez global by vrátilo chybu
return cislo # "cislo + hodnota" by v return prošlo!
print(cislo)
print(pricti_hodnotu(hodnota=3))
print(cislo)
# print(hodnota)
yield
, přičemž postupné generování hodnot se obsluhuje funkcí next()
def generator():
print('A')
yield 0
print('B')
yield 1
print('C')
it = generator()
next(it)
next(it)
next(it)
Generátory/iterátory lze vytvořit z iterovatelných objektů (jako jsou např. pole) pomocí iter(pole)
.
*Pro pokročilé: S generátory lze pracovat i obousměrně, tzn. v průběhu iterování do nich posílat nové vstupy, a to pomocí funkce send()
. Více o této a dalších možnostech lze nalézt [zde].
def faktorial(cislo):
if cislo > 0:
return faktorial(cislo - 1) * cislo
else:
return 1
print(faktorial(10))
Pro procvičení rekurze vypracujme cvičení josefuv_problem
.
tuple()
: indexování a funkce jsou stejné jako u list()
, nelze však přidávat/mazat položkyset()
: set.add()
, set.pop()
, set.remove()
, set.union()
, set.issubset()
, set.isdisjoint()
mnozina = set()
mnozina.add(5)
mnozina.add(3)
mnozina.add(5)
mnozina.add(7)
mnozina.pop()
mnozina.add(6)
mnozina.remove(7)
mnozina = mnozina.union({5,8,9})
print(mnozina)
for
a list comprehension [... for ...]
plus užitečné funkce range()
, enumerate()
, zip()
a příkazy pass
, break
, continue
dopravni_prostredky = (
'auto', 'kolo', 'loď', 'letadlo', 'motorka',
'brusle', 'koloběžka', 'surf', 'lanovka', 'kůň'
)
# klasický for cyklus
for i in range(0, len(dopravni_prostredky)):
if dopravni_prostredky[i] == 'letadlo':
print('To bude rychlost! Použiješ totiž letadlo!')
elif i == 4:
continue
elif i == 6:
break
else:
print('Použiješ {}?'.format(dopravni_prostredky[i]))
# list comprehension a funkce enumerate()
vysledek = [prostredek for i, prostredek in enumerate(dopravni_prostredky) if i % 2 == 0]
# funkce zip()
vysledek = [
prostredek
for i, prostredek in zip(range(0, len(dopravni_prostredky)), dopravni_prostredky)
if i % 2 == 0
]
inventura_v_zoo
round()
round()
jako v příkladu níže.
cislo = 1.5762357
print(round(cislo, 2))
str.split()
, str.strip()
, str.lstrip()
, str.rstrip()
, str.startswith()
, str.endswith()
, str.replace()
, str.join()
, str.format()
, str.lower()
, str.upper()
print('Cena limonády {} je {} {}.'.format('35', 'Sprite', 'KCZ'))
print('Cena limonády {limca} je {cena} {mena}.'.format(cena='35', mena='KCZ', limca='Sprite'))
print('Číslo je {:.2f}'.format(1.56789)) # všimněte si (ne)zaokrouhlení
print('kočka'.startswith('ko'))
print('kočka'.startswith('pe'))
print('pes'.endswith('e'))
print('pes'.endswith('es'))
print('Programování je lopota'.replace('o', ''))
print('Programování je lopota'.replace('je', 'přeci není'))
print('\n\tZnak "\\n" je zalomení řádků. Znak "\\t" reprezentuje tabulátor.\n'.lstrip())
print('\n\tZnak "\\n" je zalomení řádků. Znak "\\t" reprezentuje tabulátor.\n'.rstrip())
print('\n\tZnak "\\n" je zalomení řádků. Znak "\\t" reprezentuje tabulátor.\n'.strip())
print('kočka,pes,želva,papoušek,jelen'.split(','))
print(','.join(['kočka', 'pes', 'želva', 'papoušek', 'jelen'])) # zkuste do pole dát čísla
list()
:list
: list[:]
, list.index()
, list.append()
, list.insert()
, list.pop()
, list.count()
, list.reverse()
, list.remove()
list
: len()
, sorted()
, min()
, max()
, range()
pole = list()
pole.append(5)
pole.append(3)
pole.append(7)
pole.append(1)
pole.insert(2, 6)
pole.insert(21, 6)
pole[1] = 8
pole.remove(6)
pole.pop()
pole.reverse()
print(pole[:2])
if - elif - else
==
, !=
, <
, >
, <=
, >=
, not
, and
, or
, in
, all()
, any()
all()
a any()
.
print(all([True, True, False])
print(all([True, True, True])
print(all([False, False, False])
print(any([True, True, False])
print(any([True, True, True])
print(any([False, False, False])
cislo = 1.78
if round(cislo, 0) < cislo:
print('A')
elif round(cislo, 0) > cislo:
print('B')
else:
print('C')
while
cislo = 0
while cislo < 5:
print('číslo se zvětšilo')
if cislo == 3:
print('číslo je 3')
cislo += 1
print('číslo je {}'.format(cislo))
while
, který bude na vstupu požadovat zadávání čísel od 1-20, a to dokud bude zadané číslo sudé. Jakmile dostane program na vstup liché číslo, vypíše: (i) že se jedná o číslo liché, (ii) minimální a (iii) maximální zadaná čísla, (iv) počty zadaných čísel z intervalů 1-5, 6-10, 11-15, 16-20..py
, .ipynb
)python3 jmeno_programu.py
/ py jmeno_programu.py
) vs. dvojklikemint
, float
, str
, bool
, None
str(5)
vrátí '5'
a
-g
? Ověřte pomocí funkce type()
.
a = 1
b = 1.5
c = 'ahoj'
d = True
e = None
f = '20'
g = "pozdravení"
+
, -
, *
, /
, **
, //
, %
a = 1 + 1
b = 1.5 - 1
c = 3 * 5
d = 4 ** 2
e = 10 / 2
f = 10 // 3
g = 5 % 4
h = 'černo' + 'bílý'
i = 2 * 'po' + 'skočit'
j = 3 * 4 + 2
k = 3 * (4 + 2)
l = True + 5
m = a + b
n = h * b
o = g + i
print()
, input()
, str.format()
, type()
a = 'ahoj'
b = input('Zadejte své jméno v 5. pádě: ')
c = a + ' ' + b + '!'
print(c)
# jiné způsoby, jak vytisknout tentýž výstup:
print(a + ' ' + b + '!')
print('ahoj {}!'.format(b))