有没有一种方法可以简化Python中的“循环” /“循环”交互?

时间:2020-10-21 19:00:26

标签: python for-loop while-loop

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循环,但不确定这是否是最好的方法。

我将不胜感激。谢谢!!

3 个答案:

答案 0 :(得分:0)

假设每个对象有一个问题。您不需要whileinput()函数将无限期等待用户输入。

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)

请注意您如何清楚地看到以这种方式回答ahq之间的区别:h使您处于内部循环中,a中断内部循环,q通过从函数返回中断两个循环。