left_string = '/images/'
right_string = '.png'
animals['image_text'] = animals['image'].apply(lambda x: x['url'][len(left_string):len(x['url'])-len(right_string)])
当我键入“ q”时,我试图退出FOR循环,但不确定这是否是最好的方法。
我将不胜感激。谢谢!!
答案 0 :(得分:0)
假设每个对象有一个问题。您不需要while
。 input()
函数将无限期等待用户输入。
idx = 0
while idx < len(your_list):
obj = your_list[idx]
print(obj.question)
answer_or_help = input("Press a for Answer, h for Help, q to quit: ")
if answer_or_help == 'q':
break
elif answer_or_help == "h":
print(obj.hint)
elif answer_or_help == "a":
print(obj.answer)
idx += 1 # moving object
else:
print("This is not a valid answer")
答案 1 :(得分:0)
您可以使用 break ,继续和 pass 语句执行这些操作。 断言 在Python中,break语句为您提供了在触发外部条件时退出循环的机会。您通常在条件if语句之后,将break语句放入循环语句下的代码块中。
number = 0
for number in range(10):
if number == 5:
break # break here
print('Number is ' + str(number))
print('Out of loop')
继续声明 continue语句使您可以选择跳过触发外部条件的循环部分,而继续完成循环的其余部分。也就是说,当前循环的迭代将被中断,但是程序将返回到循环的顶部。
continue语句通常在条件if语句之后,在loop语句下的代码块内。
number = 0
for number in range(10):
if number == 5:
continue # continue here
print('Number is ' + str(number))
print('Out of loop')
通过声明 触发外部条件时,通过语句可让您处理条件,而不会以任何方式影响循环。除非出现break或其他语句,否则所有代码都将继续被读取。
与其他语句一样,pass语句通常在条件if语句之后,在loop语句下的代码块内。
number = 0
for number in range(10):
if number == 5:
pass # pass here
print('Number is ' + str(number))
print('Out of loop')
答案 2 :(得分:-1)
我将其包装在一个函数中,以便您可以从中返回。
def show_questions(questions):
for item in questions:
print(item.question)
while True:
user_input = input("Press a for Answer, h for Help, q to quit: ")
if user_input == 'h':
print(item.hint)
elif user_input == 'a':
print(item.answer)
break
elif user_input == 'q':
return
else:
print("This is not a valid answer)
请注意您如何清楚地看到以这种方式回答a
,h
和q
之间的区别:h
使您处于内部循环中,a
中断内部循环,q
通过从函数返回中断两个循环。