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结构。这样,araay就不会逃离我的柜台j
我通过使用while语句解决了我的问题。但我仍然对如何使用for语句解决这个问题感兴趣。如果我[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
正如您所见,此代码就是这样做的。
答案 0 :(得分: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
答案 1 :(得分:0)
你使用休息。你已经在代码中做过了:
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