in python for loop,, jump over values
Solution 1
Don't do it in range(100)
. The for
loop doesn't offer a way to skip ahead like that; time
will be set to the next value in the list regardless of what you change it to in the body of the loop. Use a while
loop instead, e.g.
time = 0
while time < 100:
gold += level
if gold > 20 * level:
level +=1
time += 10
time += 1
Solution 2
Your assignment to time
on the last line has no effect. At the top of the loop, time
is immediately assigned to the next value yielded by range
. But why is this a loop at all, can't you just do the calculations outright?
Solution 3
time
will continually get overwritten each loop iteration, so time+=10
will not have the desired effect. You can convert the loop back into a C style loop using while
and explicit mutation of the time
variable or you could be fancy and setup an iterator which allows skipping ahead arbitrary values.
kirill_igum
former AI lead. now, consulting regarding data compliance (CCPA, GDPR, LGPD, ...) and data infrastructure design.
Updated on June 05, 2022Comments
-
kirill_igum almost 2 years
time=0 gold=0 level=1 for time in range(100): gold+=level if gold>20*level: level+=1 time+=10
with this program gold is added until it reaches a critical amount, then it takes 20s to upgrade a mine so it produces more gold. i'd like to skip those 20s (or 20 steps) in the loop? this works in c++, i'm not sure how to do it in python.