Temporarily stop a for control flow
for i in liste:
inp = input('Skriv et tall mellom 0 og 3 ')
if inp > (len(i)-1):
print 'HOOOOORE'
elif i[inp] == 'T':
print 'Du er videre til neste rom'
print 'Du er naa i rom ' + str(j)
j = j + 1
elif i[inp] == 'B':
print 'Du falt i et bunnlost hull og er na do'
break
elif i[inp] == 'F':
print 'Du dode i en felle'
break
elif i[inp] == 'M':
print 'Du slapp unna'
break
If the user enters a number that is greater than the length of the array i
, I want to make the for structure stop if that is possible. That way the araay wont run away from my counter j
I solved my problem by using a while statement. But i am still interested in how I can solve this by using a for statement. If i[inp] is not == T I want to operate on the same i again.
def spill(liste):
i = 0
j = 2
while j < len(liste):
inp = input('Skriv et tall mellom 0 og ' +开发者_开发知识库 str(len(liste[i])-1) + ': ')
if inp > (len(liste[i])-1):
print 'HOOOOORE'
inp = input('Skriv et tall mellom 0 og 3 denne gangen: ')
elif liste[i][inp] == 'T':
print 'Du er videre til neste rom fordi denne doren var trygg'
print 'Du er naa i rom ' + str(j)
j = j + 1
elif liste[i][inp] == 'B':
print 'Her er det et hull. Ikke ga her'
elif liste[i][inp] == 'F':
print 'Her er det en felle'
elif liste[i][inp] == 'M':
print 'Du slapp unna'
break
This code does just that as you can see.
What really solves you problem is to put that input()
into a while
, and use raw_input()
instead:
for i in liste:
inp = raw_input('Skriv et tall mellom 0 og 3 ')
while inp > (len(i)-1):
inp = raw_input('Skriv et tall mellom 0 og 3 ') # you may want to change the text here
if i[inp] == 'T':
print 'Du er videre til neste rom'
print 'Du er naa i rom ' + str(j)
j = j + 1
elif i[inp] == 'B':
print 'Du falt i et bunnlost hull og er na do'
break
elif i[inp] == 'F':
print 'Du dode i en felle'
break
elif i[inp] == 'M':
print 'Du slapp unna'
break
You use break. you already did in your code:
for i in liste:
inp = input('Skriv et tall mellom 0 og 3 ')
if inp > (len(i)-1):
print 'HOOOOORE'
continue
elif i[inp] == 'T':
print 'Du er videre til neste rom'
print 'Du er naa i rom ' + str(j)
j = j + 1
elif i[inp] == 'B':
print 'Du falt i et bunnlost hull og er na do'
break
elif i[inp] == 'F':
print 'Du dode i en felle'
break
elif i[inp] == 'M':
print 'Du slapp unna'
break
精彩评论