【问题标题】:Creating "redo" function to return to beginning of multiple functions in Python在 Python 中创建“重做”函数以返回多个函数的开头
【发布时间】:2021-06-22 18:50:04
【问题描述】:

如何使“重做”函数返回到多个不同函数的开头?我希望它返回起始函数的开头,但由于函数名称发生变化,重做函数将不适用于除第一个函数之外的任何其他函数。任何帮助表示赞赏,在此先感谢!

我正在尝试做的示例:

function_1():
  print('x')
  redo()

function_2():
  print('y')
  redo()

def redo():
 while True:
    redo = input("Would you like to redo this section?\nEnter y/n: ")
    while redo not in ('y', 'n'):
            print("Please enter a valid input.\n")
    if redo == 'y':
        (original function its under) 
    elif redo == 'n':
        break

【问题讨论】:

    标签: python function loops repeat redo


    【解决方案1】:

    一个函数不能直接改变其调用者的控制流,但它可以返回一个条件,调用者可以使用它来修改它自己的控制流:

    def function_1():
        run = True
        while run:
            print('x')
            run = redo()
    
    def function_2():
        run = True
        while run:
            print('y')
            run = redo()
    
    def redo():
        while True:
            redo = input("Would you like to redo this section?\nEnter y/n: ")
            if redo == 'y':
                return True
            if redo == 'n':
                return False
            print("Please enter a valid input.")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 2014-09-12
      • 1970-01-01
      • 2021-05-27
      • 2021-12-17
      • 1970-01-01
      • 2018-04-07
      • 1970-01-01
      相关资源
      最近更新 更多