开发者

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
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜