暂时停止for循环控制流
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