Python 如何防止在while循环中重复程序调用

Python 如何防止在while循环中重复程序调用,python,loops,while-loop,Python,Loops,While Loop,我试图防止这个开关函数在概率while循环中不断重复,我希望它被调用一次,提升一个输入,然后在while循环中每次使用该输入的返回,而不是每次都询问 (它不允许我添加开关功能的第二张图片,所以我只需复制并粘贴它) 您可以在while循环之前的probability()函数中设置变量,例如if\u switch=switch\u door(),并将该变量作为参数传递给仿真函数。 请注意,您需要将模拟定义更改为,例如def模拟(doors,if_开关):;您还需要更改这两行: if-switch\

我试图防止这个开关函数在概率while循环中不断重复,我希望它被调用一次,提升一个输入,然后在while循环中每次使用该输入的返回,而不是每次都询问

(它不允许我添加开关功能的第二张图片,所以我只需复制并粘贴它)


您可以在while循环之前的
probability()
函数中设置变量,例如
if\u switch=switch\u door()
,并将该变量作为参数传递给仿真函数。 请注意,您需要将模拟定义更改为,例如
def模拟(doors,if_开关):
;您还需要更改这两行:

  • if-switch\u-door()==True:
    if-switch==True:
  • elif switch\u door()==False:
    to simply
    else:

  • 现在您的问题应该解决了。

    将代码粘贴到问题中。您的格式设置偏移了一个变量,该变量等于while循环外部的switch_door函数的输出,并将该变量传递给模拟函数。如果您只想请求一次
    switch doors
    的用户输入,为什么不将其与其余输入一起放在while循环之前?您应该始终复制并粘贴您的代码,而不仅仅是当您无法添加屏幕截图时。
    def switch_door():
        switch=raw_input("Switch doors?:")
        if switch!="y" and switch!="n":
            return "Incorrect inputs"
        elif switch=='y':
            return True 
        elif switch=='n':
            return False