Nauč se Python > Kurzy > Začátečnický kurz PyLadies > Cykly > Zpětná vazba k domácím projektům

Feedback k domácím projektům

Nejmenší číslo

Jedno z vašich řešení:

In [ ]:
c1 = int(input("Zadej 1. číslo: "))
c2 = int(input("Zadej 2. číslo: "))
c3 = int(input("Zadej 3. číslo: "))
c4 = int(input("Zadej 4. číslo: "))
c5 = int(input("Zadej 5. číslo: "))

if c1 < c2 and c1 < c3 and c1 < c4 and c1 < c5:
    print("Nejmenší číslo je:", c1)
elif c2 < c1 and c2 < c3 and c2 < c4 and c2 < c5:
    print("Nejmenší číslo je:", c2)
elif c3 < c2 and c3 < c1 and c3 < c4 and c3 < c5:
    print("Nejmenší číslo je:", c3)
elif c4 < c2 and c4 < c3 and c4 < c1 and c4 < c5:
    print("Nejmenší číslo je:", c4)
else:
    print("Nejmenší číslo je:", c5)

Další řešení:

In [ ]:
min = 999999999999

for i in range(5):
    cislo = int(input("Zadej číslo: "))
    if cislo < min:
        min = cislo

print("Nejmenší číslo je: ", min)

Další řešení:

In [ ]:
for i in range(5):
    cislo = int(input("Zadej číslo: "))
    if i == 0:
        min = cislo
    elif cislo < min:
        min = cislo

print("Nejmenší číslo je: ", min)

Další řešení:

In [ ]:
min = int(input("Zadej číslo: "))

for i in range(4):
    cislo = int(input("Zadej číslo: "))
    if cislo < min:
        min = cislo

print("Nejmenší číslo je: ", min)

N-úhelníky v řadě

Upovídané řešení z domácích projektů

In [ ]:
from turtle import forward, left, penup, pendown, exitonclick

# petiuhelnik
uhel = 180 - (180 * (1 - 2 / 5))
for i in range(5):
    forward(200/5)
    left(uhel)

penup()
forward(100)
pendown()

# sestiuhelnik
uhel = 180 - (180 * (1 - 2 / 6))
for i in range(6):
    forward(200/6)
    left(uhel)

penup()
forward(100)
pendown()

# sedmiuhelnik
uhel = 180 - (180 * (1 - 2 / 7))
for i in range(7):
    forward(200/7)
    left(uhel)

penup()
forward(100)
pendown()

# osmiuhelnik
uhel = 180 - (180 * (1 - 2 / 8))
for i in range(8):
    forward(200/8)
    left(uhel)

penup()
forward(100)
pendown()

exitonclick()

Kratší řešení s využitím cyklu v dalším cyklu

In [ ]:
from turtle import forward, left, penup, pendown, exitonclick

for n in range(5, 9):
    uhel = 180 - (180 * (1 - 2 / n))
    for i in range(n):
        forward(200/n)
        left(uhel)

    penup()
    forward(100)
    pendown()

exitonclick()

Výpočet úhlu bokem (kalkulačka)?

In [ ]:
from turtle import forward, left, exitonclick

for i in range(95):
    forward(5)
    left(3.8)

exitonclick()

Nebo pomocí Pythonu?

In [ ]:
from turtle import forward, left, exitonclick

for i in range(95):
    forward(5)
    left(360/95)

exitonclick()

Jednoduchá kalkulačka

Jedno možné řešení:

In [ ]:
prvni_cislo = int(input("Zadej první celé číslo: "))
druhe_cislo = int(input("Zadej druhé celé číslo: "))
operace = (input("Zadej operaci, kterou mám s čísly provést (+, -, * nebo /): "))

if operace == "+":
    print(prvni_cislo, operace , druhe_cislo, "=", prvni_cislo + druhe_cislo)

if operace == "-":
    print(prvni_cislo, operace , druhe_cislo, "=", prvni_cislo - druhe_cislo)

if operace == "*":
    print(prvni_cislo, operace , druhe_cislo, "=", prvni_cislo * druhe_cislo)

if operace == "/":
    print(prvni_cislo, operace , druhe_cislo, "=", prvni_cislo / druhe_cislo)

Druhé možné řešení:

In [ ]:
num1 = float(input("Zadej první číslo: "))
num2 = float(input("Zadej druhé číslo: "))
operator = input("Vyber operaci + - * /  ")

if operator == "+":
    vysledek = num1 + num2

elif operator == "-":
    vysledek = num1 - num2

elif operator == "*":
    vysledek = num1 * num2

elif operator == "/":
    if num2 == 0:
        print("Nelze dělit nulou!")
        vysledek = False
    else:
        vysledek = num1 / num2
else:
    print("Neznámý operátor!")
    vysledek = False

if vysledek:
    print(num1, operator, num2, "=", vysledek)

Importy

  • Všechny importy na první řádky programu.
  • Importy z 1 knihovny na 1 řádek.
  • Neimportovat to, co nepotřebuji.
  • Nepoužívat from knihovna import *
In [ ]:
from turtle import forward
from turtle import left, right
from random import randrange

for i in range(4):
    left(90)
    forward(50)

from turtle import exitonclick
exitonclick()

Po úpravě

In [ ]:
from turtle import forward, left, exitonclick

for i in range(4):
    left(90)
    forward(50)

exitonclick()

Dokumentace modulu turtle

https://docs.python.org/3/library/turtle.html

Někteří z vás našli

  • speed()
  • circle()
  • pensize()
  • a mnoho dalších funkcí pro želvu

Stylopis

Není to chyba, která brání spustit program, ale ...

Mezi název funkce a závorky s argumenty nepatří mezera.

Kolem operátorů ve většině případů patří mezera.

Kolem operátoru = nepatří mezera např. při definování pojmenovaného argumentu.

In [1]:
len("ahoj")
range(10)
range(4, 20, 3)
cislo = int(input("Zadej číslo: "))

a = 10 + cislo
if a >= 8:
    print("Číslo je větší nebo rovno 8", end='...')

print()
    
tah = "kámen"
if tah == "kámen" and cislo == 3:
    print("Tah je", tah, sep=" => ")
    print("A číslo je:", cislo)
Zadej číslo: 3
Číslo je větší nebo rovno 8...
Tah je => kámen
A číslo je: 3

Obecné připomínky a rady

  • Pochvala za domácí úkoly.
  • Pochvala všem, kteří měli čas na bonusové úkoly.
  • Pochvala všem, kteří měli problém a zeptali se.
  • PTEJTE SE: Když se nezeptáte, nemůžeme vám odpovědě a hlavně nevíme, že je někde problém, se kterým potřebujete poradit.

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