Временно остановить для контроля потока - PullRequest
0 голосов
/ 13 октября 2011
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

Если пользователь вводит число, превышающее длину array i, я хочу остановить структуру for, если это возможно. Таким образом, араэй не убежит от моего прилавка j

Я решил свою проблему с помощью оператора while. Но мне все еще интересно, как я могу решить эту проблему, используя утверждение for. Если i [inp] не == T, я хочу снова работать с тем же i.

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

Этот код делает именно это, как вы можете видеть.

Ответы [ 2 ]

1 голос
/ 13 октября 2011

Что действительно решает вашу проблему - это поместить input() в while и использовать raw_input() вместо:

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
0 голосов
/ 13 октября 2011

Вы используете перерыв.Вы уже сделали в своем коде:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...