IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: jakou podmínku použít pro smyčku

V předchozím kvízu, Online test znalostí Python 2.7, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
itlady
Člen
Avatar
itlady:6.7.2020 9:10

Ahoj,

potřebuju poradit, jak zadat v Pythonu smyčku. Mám načtené z databáze hodnoty, které mají index 0,1,2,3 podle vložených hodnot. Na základě toho se budou vytvářet další akce. Potřebuju ošetřit, že když bude vložená hodnota např. s indexem 3, tak 0,1,2 nic neudělá, tzv. vykoná se funkce pouze pro i = 3.

while True:
    for item in record[0]:
        funkce()   # fce pro i = 0
elif:
    for item in record[1]:
        funkce()   # fce pro i = 1
elif:
    for item in record[2]:
        funkce()   # fce pro i = 2
elif:
   for item in record[3]:
        funkce()   # fce pro i = 3
elif:
   for item in record[4]:
        funkce()   # fce pro i = 4
else:
   for item in record[5]:
        funkce() # fce pro i = 5

Zkusil jsem: Zatím mám toto, kdy je třeba zadat i hodnotu pro všechna i, pak se zobrazí, to co potřebuju.

Chci docílit: Potřebuju ošetřit, že když i=0 nebude mít žádnou hodnotu, přeskočí se na i=1 atd., dokud nebude i s vloženou hodnotou.

 
Odpovědět
6.7.2020 9:10
Avatar
Jiří Havelka:6.7.2020 11:10

Pokud dobře chápu tak tvůj základní problém je, že nevýš jak přistoupit k indexu. Mmohla by ti pomoci funkce enumerate (https://docs.python.org/…nctions.html?…).
Potom by tvůj for cyklus mohl vypadat nějak takto.

for item in enumerate(record[1]):
        index = item[0] # index v pole
        value = item[1] # hodnota na daném indexu
        # logika, která bude pracovat s hodnotou indexu
 
Nahoru Odpovědět
6.7.2020 11:10
Avatar
itlady
Člen
Avatar
itlady:7.7.2020 9:08

Ano, problém bude s indexy.
Píše to chybu: IndexError: list index out of range

Tuto funkci použiji poprvé, musím vyzkoušet, jestli to bude fungovat. I tak díky za pomoc.

 
Nahoru Odpovědět
7.7.2020 9:08
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.