Nauč se Python > Kurzy > Začátečnický kurz PyLadies > Jeden nový cyklus a procvičování > Zpětná vazba k domácím projektům

Feedback k domácím projektům

Co dělá a vrací funkce print()?

In [1]:
vysledek = print("Ahoj světe")
print(vysledek)
Ahoj světe
None

Co dělá a vrací funkce input()?

In [2]:
jmeno = input("Napiš své jméno: ")
print(jmeno)
Napiš své jméno: Petra
Petra

Co dělá a vrací funkce len()?

In [3]:
delka = len("Petra")
print(delka)
5

Proměnné a for cyklus - takto NE !!!

In [4]:
cislo = 20
for cislo in range(5):
    print(cislo * "♫")
    cislo = cislo + 1
print("V proměnné cislo je uložena hodnota: ", cislo)
♫
♫♫
♫♫♫
♫♫♫♫
V proměnné cislo je uložena hodnota:  5

Opraveno:

In [5]:
for cislo in range(5):
    print(cislo * "♫")
♫
♫♫
♫♫♫
♫♫♫♫

Lze tento kód napsat jednodušeji, aby dělal to samé?

In [6]:
promenna = "X"

for j in range(5):
    for i in promenna:
        print(i, i, i, i, i)
X X X X X
X X X X X
X X X X X
X X X X X
X X X X X

Ano jde

In [7]:
for j in range(5):
    print('X ' * 5)
X X X X X 
X X X X X 
X X X X X 
X X X X X 
X X X X X 

Prázdný čtverec

Upovídané řešení

In [8]:
for radek in range(6):
    if radek == 0:
        for obsah_radku in range(6):
            print('X', end=" ")
        print()
    elif  radek == 5:
        for obsah_radku in range(6):
                print('X', end=" ")
        print()
    else:
        print('X', end=" ")
        print(' ' * 7, end=" ")
        print('X', end=" ")
        print()
X X X X X X 
X         X 
X         X 
X         X 
X         X 
X X X X X X 

Méně upovidané řešení

In [9]:
for radek in range(6):
    if radek == 0:
        print('x x x x x x')
    elif radek==5:
        print('x x x x x x')
    else:
        print('x         x')
x x x x x x
x         x
x         x
x         x
x         x
x x x x x x

Kratší řešení

In [10]:
for radek in range(6):
    if radek == 0 or radek == 5:
        print('X ' * 6)
    else:
        print('X ', ' ' * 6, 'X')
X X X X X X 
X         X
X         X
X         X
X         X
X X X X X X 

Další řešení

In [11]:
for radek in range(6):
    for sloupec in range(6):
        if radek == 0 or sloupec == 0 or radek == 5 or sloupec == 5:
            print('X', end=' ')
        else:
            print(' ', end=' ')
    print()
X X X X X X 
X         X 
X         X 
X         X 
X         X 
X X X X X X 

Fibonacciho posloupnost

In [12]:
pocet = 20
a = 0
b = 1

print(a, b, sep=", ", end=", ")

for i in range(pocet):
    dalsi_v_rade = a + b
    a = b
    b = dalsi_v_rade

    print(dalsi_v_rade, end=", ")
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946, 

Obecné připomínky a rady

  • Pokud funkce nemá argumenty, mezi otevírací a zavírací závorku se nic nepíše (ani mezera)
  • Také mezi název funkce a závorky se mezera nepíše - takže nikoli print () ale print()
  • BABY STEPS
  • Funkce, argument, pojmenovaný argument, návratová hodnota (Lekce 3: Cykly -> Funkce)
  • Složitost algoritmů a nebezpečí použití vnořených cyklů

Toto je stránka lekce z kurzu, který probíhá nebo proběhl naživo s instruktorem.