暂时停止for循环控制流

0 投票
2 回答
827 浏览
提问于 2025-04-17 04:13
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 的长度,我想让循环停止,这样数组就不会超出我的计数器 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 个回答

0

你用到了 break 这个命令。其实你在你的代码里已经用了:

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
1

解决你问题的关键是把那个 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

撰写回答