tereziev / python-012021

0 stars 0 forks source link

Homework 1 #1

Closed zabza86 closed 3 years ago

zabza86 commented 3 years ago

@tereziev Dekuji za poslani prikladu :) Jsou skvele a uz se tesim na ten posledni chybejici :) Nabizim vylepseni k zamysleni... Uvadim pouze uryvky...

Ukol 1: Bohuzel ve tvem reseni je chyba pri doruceni baliku "B547X": False jelikoz tvuj kod rika, ze jakykoliv kod, ktery se nachazi ve slovniku je True a nebere hodnotu pod kodem... Takze tento balik mas jako doruceny, staci mensi uprava a je vse v poradku...

    # if cisloBaliku[True]:
    if baliky[cisloBaliku]:
zabza86 commented 3 years ago

Ukol 2: Kod je zcela spravny, ale nabizim vylepseni :) Neni treba vytvaret promenne, jestli se jedna jen o vypis a hodnota pod klicem kodSoucastky je int, neni treba je pretypovat na int...

    if kodSoucastky in sklad:
        # soucastka = int(sklad[kodSoucastky])
        # if soucastka >= pocestKusu:
        if sklad[kodSoucastky] >= pocestKusu:
            print("Poptávku lze uspokojit v plné výši.")
            # sklad[kodSoucastky] = soucastka - pocestKusu
            print(f"Na sklade zbyva: {sklad[kodSoucastky] - pocestKusu}")
        else:
            # print(f"Součástka je skladem jen ve výši {soucastka} kusů.")
            print(f"Součástka je skladem jen ve výši {sklad[kodSoucastky]} kusů.")
            sklad.pop(kodSoucastky)
zabza86 commented 3 years ago

Ukol 3: Tvuj kod je dobre, ale for cyklus je tam zcela zbytecny... Cyklus je dobry, pokud potrebujeme prochazet jednotlive prvky a dale zpracovavat, ale pokud potrebujeme jen zjistit, zda se prvek nachazi staci jen podminka a dostane true nebo false...

    # for cas in volnePokoje:
    #     if pozadovanyCas == cas:
    if pozadovanyCas in volnePokoje:
        # print(f"V požadovaný čas jsou volné {len(volnePokoje[cas])} místnosti.")
        print(f"V požadovaný čas jsou volné {len(volnePokoje[pozadovanyCas])} místnosti.")

   # a co kdyz zada uzivatel jiny cas?
    else:
        print("Neplatná hodina")
zabza86 commented 3 years ago

Ukol 4: Opet zbytecne slozite, staci jen jeden radek :)

    for sign in message:
        # for code in morseCode:
        # if sign == code:
        print(morseCode[sign], end=" ")

Avsak pokud by text mela byt veta, je treba zpracovat mezeru, ktera se nenechazi v morseove abecede.

        if sign == " ":
            print("/", end=" ")
        else:
            print(morseCode[sign], end=" ")

Zcela optimalni reseni je s pouzitim funkce message = message.lower() a jeste co delat z cela neznamym znakem

        if sign in morseCode:
            print(morseCode[sign], end=" ")
        elif sign == " ":
            print('/', end=" ")
        else:
            print('??', end=" ")
zabza86 commented 3 years ago

@tereziev Tesim se na dalsi Tvoje reseni a mej se krasne :)M

zabza86 commented 3 years ago

@tereziev Ahojky :) reaguji, zde, na tvuj paty priklad z emailu, prijde mi to, zde pohodlnejsi nez pres email...

Jasne, ze pomohu, jen promin za delsi cekani na odpoved...

V tomto pripade byl mensi chytak, jelikoz ve slovniku se nesmi vyskytovat 2x stejny klic, takze pokud si das

print(prodeje2020)

tak by se tam ukazala vzdy ta posledni hodnota stejneho klice...

Jinak jsi na to sla od lesa, opravdu se to da elegantne a jednodusse vyresit... Metoda "if neco in nekde" pracuje na principu vyhledam a odpovim true nebo false, zda tam mohe hledane slovo je ci neni... Tudiz se zeptam, zda se moje kniha nachazi ve slovniku?

if book in prodeje2019:

dostanu odpoved true/false pokud se nachazi, tak dale neco udelam, treba si novou hodnotu prictu do promenne

total+= prodeje2019[book]

Kdyz si to takhle rozepises, tak se potom da jednodusse nahradit slovo za prikaz a mas hotovo :) Stejna podminka pro druhy slovnik, ale vysledek do stejne promenne prodej A mas hotovo :) Pokud by jsi to chtela spojovat pres and ci or, tak jen za predpokladu, ze se kniha nenachazi v obou slovnicich, jelikoz by ti to vzdy vzalo prvni hodnotu a nepripocitalo druhou...

Dodatek:

total = int(total + prodeje2020[book] + prodeje2019[book])

Neni treba pretypovat int na int :) vsechny hodnoty v zavorce jsou cele cisla, tedy nemusis to tam jeste znovu psat :)

Kdyby jsi mela dalsi dotazy tak napis a na githubu cekam posledni verzi :)

tereziev commented 3 years ago

Díky @zabza86 za připomínky!! to moc pomohlo :) já se moc omlouvám za delší prodlevy, večer po lekci sem nahodím řešení. Jsi skvělá, moc díky.

zabza86 commented 3 years ago

@tereziev zapomněla jsem dopsat poznámku k tvému 5. úkolu :) je super a nemám další komentář, tímto ukončuji toto Issues :)