Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
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
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
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.