VeronikaDolan / python-kurz-2022-ukoly

0 stars 0 forks source link

Ukol c.2 #2

Closed VeronikaDolan closed 2 years ago

VeronikaDolan commented 2 years ago

Ahoj,

odevzdávám úkol č.2 včetně bonusu.

https://github.com/VeronikaDolan/python-kurz-2022-ukoly/blob/020a9a20bc10a954089e74f720a3de8696573149/ukol-2.py

https://github.com/VeronikaDolan/python-kurz-2022-ukoly/blob/020a9a20bc10a954089e74f720a3de8696573149/ukol-2-bonus.py

Můžu doufat, že příští úkol nebude takový masakr? :-)

Díky.

Verča Dolanová

pmoravkova commented 2 years ago

Velmi dobra prace! Gratuluji a chvalim i za bonus! Tip pro pokrocile (mozna radsi ani necti, abyses nezdesila :)): Za me je to na zacatecnika vyborne reseni, vazne chvalim. Kdyz pak budes programovat dal, tak davam tip, ze casto se kouka v software vyvoji i na to, aby tam nebyly zbytecny operace, jakoze slovnik ci seznam, aby se neprochazel vickrat, nez je nutne, aby si program pamatoval co nejmene, atd... Rikaji tomu, ze jsou ty operace "drahe". Tady je to jedno, protoze slovnik i seznam jsou maly, ale kdyby to byl slovnik o milionech zaznamu, uz by to trvalo, zvlast kdyz nejdriv prochazis slovnik a pak o neco pomenseny seznam. Proto je pak dobry se zamyslet, jeslti to nejde udelat naraz a jednoduseji. Tady bohate stacilo, kdyz chceme jen vedet, jestli kontinent existuje nebo ne, udelat i neco na zpusob, ze si na zacatku das promennou je_tam_region = False, a v podmince, kdyz region najde, zmenis ji na True, pak na konci vyhodnotis, jestli je to False nebo ne. Data prochazis jen jednou a pamatujes si jen malou boolean hodnotu.

region = False
zajem = input("Jaký region tě zajímá? ")
for stat in staty:
    if stat['region'] == zajem:
        print(stat['name'])
        region = True
if not region:
    print('neznamy kontinent')

Co se tyce bonusu, tak tez sis s tim super poradila. Super komplikovane, ale krasne. Maximalne tip jako nahore. Reseni se da docilit zanorenym ifem, jestli jste to uz videli/vedeli, ze se if hromadit pod sebe a pouzit mnohokrat za sebou (i kdyz deset ifu za sebou nekteri neradi vidi). Davam priklad:

zajem = input('Kontinent, co te zajima? ') 
vysledek = {}
for stat in staty:
    if stat['region'] == zajem:
        if stat['subregion'] in vysledek:
            vysledek[stat['subregion']] += stat['population']
        else:
            vysledek[stat['subregion']] = stat['population']
print(vysledek)

Ber to jen jako moznost jineho reseni, ale jinak vazne skvela prace! P.S.: Nemuzu slibit, nevim, jaky ulohy vas jeste cekaji. Mozna budou tezsi, ale vy zas budete lepsi a lepsi, takze vas to nezaskoci.