Search
Cykly a podmínky představují tzv. řídící struktury (anglicky control flow statemens), které větví běh programu, či slouží k opakovanému provádění určitých příkazů
Operátory porovnání: ==, is, !=, <, >, >=, <=, in. Negace: not
==
is
!=
<
>
>=
<=
in
not
Výsledek operace/porovnání je True (Pravda) nebo False (Nepravda)
Některé operace nejsou povolené pro určité typy proměnných.
a = 5 b = 7 print(a>b) # vraci False protoze a = 5 a b = 7, tedy a < 7 print(not a>b) # vraci True protoze provadime negaci False
a>b and b>c
a>b & b>c
a>b or a>c
a>b | a>c
a = True b = False
a = 14 #bitově 1110 b = 4 #bitově 0100
print(b and a) print(b & a)
print(b or a) print(b | a)
Proběhne daný blok kódu při splnění podmínky (logický_výraz==True)
if logický_výraz: <blok příkazů>
a = 9.0 if type(a) == type(0): print('Proměnná a je celé číslo!') # místo type(a) == type(0) lze použít type(a) == int nebo funkci isinstance(a, int)
Proběhne první blok příkazů při splnění podmínky (logický_výraz==True) a druhý blok příkazů při jejím nesplnění (logický_výraz==False).
if logický_výraz: <první blok příkazů> else: <druhý blok příkazů>
a = 5 b = 7 if a > b: print('a > b') else: print('a <= b')
Napište podmínku, díky které zjistíte zda je číslo N dělitelné čísly x a y.
N = int(input('Zadejte cislo N:')) x = int(input('Zadejte x:')) y = int(input('Zadejte y:')) # Napište podmínku níže
Proběhne první blok příkazů při splnění podmínky 1 (logický_výraz_1==True), druhý blok příkazů při splnění podmínky 2 (logický_výraz_2==True) a třetí blok příkazů při nesplnění žádné z podmínek (logický_výraz_1==False and logický_výraz_2==False). Možné přídávat libovoné množství větví elif
if logický_výraz_1: <první blok příkazů> elif logický_výraz_2: <druhý blok příkazů> ... else: <třetí blok příkazů>
a = 5 b = 7 if a > b: print('a > b') elif a == b: print('a = b') else: print('a < b')
Dostanete od uživatele celé číslo na vstupu. Napište podmínku, která napíše Nula (když bude n rovné 0), Sudé (pokud bude číslo sudé a nebude 0), případně Liché (když bude liché a nebude 0).
n = int(input('Napiš celé číslo: ')) # Napište podmínku níže
Dopište správně podmínku do programu níže.
# Program, ktery zjisti jestli lze sestrojit trojuhelnik ''' a = 3 b = 4 c = 4 ''' a = int(input('zadej stranu a:')) b = int(input('zadej stranu b:')) c = int(input('zadej stranu c:')) if <podminka>: print('Trojuhelnik lze sestrojit') else: print('Trojuhelnik nelze sestrojit')
for <výraz> in <iterovatelný_objekt>: <blok_kódu_for>
Případně:
for <výraz> in <iterovatelný_objekt>: <blok_kódu_for> else: <blok_kódu_else>
veta = 'Zaklady programovani.' for pismeno in veta: print(pismeno, end=' ')
# funkce range(), slouží k výpisu posloupnosti/řady čísel range(10) # posloupnost 0-9 range(5,10) # posloupnost 5-9 range(1,10,2) # posloupnost 1-9 po 2 (1,3,5,7,9) for x in range(5,10): print(x, end = ' ')
Dopište program tak, aby se postupně vypsala čísla jednotlivých trpaslíku.
<cyklus>: <vypis_cisel_jednotlivych_trpasliku>
Vypočtěte faktoriál čísla s pomocí cyklu for a funkce range.
cislo = 9 <cyklus_pro_vypocet_faktorialu> print('Faktorial cisla {0:d} je {1:d}'.format(cislo, faktorial))
while <logický_výraz>: <blok_kódu_while>
while <logický_výraz>: <blok_kódu_while> else: <blok_kódu_else>
break
continue
# Výpis čísla od 1 do 10 s využitím cyklu while
Vypočtěte faktoriál čísla s pomocí cyklu while.
cislo = 2 # Zde doplňte cyklus pro výpočet faktoriálu <cyklus_pro_vypocet_faktorialu> print('Faktorial cisla {0:d} je {1:d}'.format(cislo, faktorial))
Využijte jeden z cyklů a příslušné matematické operace (odkaz na vzorec)
print('pi: ' + str(pi))
def <název_funkce>(<parametry>): <prikaz> <prikaz> <prikaz>
Případně s výstupní proměnnou:
def <název_funkce>(<parametry>): <prikaz> <prikaz> <prikaz> return <vystup>
# Pocet samohlasek ve vete def pocet_samohlasek(veta): #<napiste kod>
veta = 'S funkcemi se budete potkavat casto.' print(pocet_samohlasek(veta))
Napište funkci, která odstraní písmena q,w,x,y z věty.
def bez_pismen(veta): <dopiste_funkci> print(vystupni_veta)
veta = 'ywqGqratxulqwwujwxiy.xywq xwqwFquyxnqkwcxxyiywyw xxwqsqwewyx wqtxxiyw pxyqowvyyexdwlqowqqx xxnqxapwyrqoqgyxramxoqvyqaxtqx sqpwrxxaqvnwqewwxy!' bez_pismen(veta)
def f(a=5, b=0): print((a**2)+b) a = f() b = f(9) type(a)
a = f(b=2,a=9)
Níže je uvedeno několik příkladů, které si vyřešte sami v rámci domácí práce
Vykreselte čtvercovou matici celých kladných čísel čísel rostoucích od 0 do $N-1$, kde $N = n\cdot n$ a $n$ je počet řádků a sloupců matice Uvažujte $2 \leq n \leq 10$ Pro $n=10$ bude matice vypadat takto
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
Zkuste úlohu vyřešit pomocí jednoho for cyklu nebo pomocí dvou for cyklů vnořených do sebe
# reseni pomoci jednoho for cyklu # reseni pomoci dvou for cyklu
Vykreselte pouze první diagonálu matice z předchozího úkolu
Pro $n=10$ bude matice vypadat takto
0 11 22 33 44 55 66 77 88 99
Opět se zamyslete nad řešením pomocí jednoho nebo dvou vnořených cyklů
N = 10 # pocet radku a sloupcu matice # reseni pomoci jednoho for cyklu # reseni pomoci dvou for cyklu
Vykreselte pouze druhou diagonálu matice z před předchozího úkolu
9 18 27 36 45 54 63 72 81 90
Vykreselte obě diagonály matice
1 9 11 18 22 27 33 36 44 45 54 55 63 66 72 77 81 88 90 99
Napište funkci isprime(), která bude vracet True pokud bude argumet funkce prvočíslo, jinak vrátí False
def isprime(n): ''' isprime(n) vraci True pokud je n prvocislo, jinak vrati False funkce nekontroluje, jestli je n cele cislo funkce postupne prochazi vsechny cisla od 2 az do hodnoty argumentu a zjistuje, jestli je zbytek po deleni roven nule ''' <vas_kod> # vypise navratovou hodnotu funkce na standardni vystup print(isprime(17))
Domácí úkol najdete na webu předmětu.