如何使该程序无限循环



我想从头到尾无限期地循环这段代码(直到用户杀死它(,所以我不必继续重新运行它。有没有办法使这成为可能?我将非常感谢您的帮助。程序应该在用户输入"完成"(并打印所有详细信息(后重新启动。

print ("Input done when finished")
print ("Input thresholds")
maximumnum = int(input("Input maximum number: "))
minimumnum = int(input("Input minimum number: "))

minimum = None
maximum = None
while True:
    inp =input("Enter a number: ")
    if inp == "done": 
        break
    try:
        num = float(inp)
    except:
        print ("Invalid input")
        continue  
    ## ---- Additional Check ---- ##
    if num > maximumnum:
        print('Number greater the maximum allowed range')
        break
    if num < minimumnum:
    print('Number smaller the maximum allowed range')
    break        
    ## -------------------------- ##                  
    if minimum is None or num < minimum:
        minimum = num
    if maximum is None or num > maximum:
        maximum = num
print ("Maximum:", maximum)
print ("Minimum:", minimum)
print ("Try again")

为什么不把整个脚本包装在另一个 True 中呢?若要停止,用户必须终止正在运行的进程。

while True:
    print ("Input done when finished")
    print ("Input thresholds")
    maximumnum = int(input("Input maximum number: "))
    minimumnum = int(input("Input minimum number: "))

    minimum = None
    maximum = None
    while True:
        inp =input("Enter a number: ")
        if inp == "done": 
            break
        try:
            num = float(inp)
        except:
            print ("Invalid input")
            continue  
        ## ---- Additional Check ---- ##
        if num > maximumnum:
            print('Number greater the maximum allowed range')
            break
        if num < minimumnum:
        print('Number smaller the maximum allowed range')
        break        
        ## -------------------------- ##                  
        if minimum is None or num < minimum:
            minimum = num
        if maximum is None or num > maximum:
            maximum = num
    print ("Maximum:", maximum)
    print ("Minimum:", minimum)
    print ("Try again")

我会把它包装在方法上并在无限循环中运行它。请尝试以下操作:

def process_input(maximumnum, minimumnum):
    minimum = None
    maximum = None
    while True:
        inp =input("Enter a number: ")
        if inp == "done":
            break
        try:
            num = float(inp)
        except:
            print("Invalid input")
            continue
            ## ---- Additional Check ---- ##
        if num > maximumnum:
            print('Number greater the maximum allowed range')
            break
        if num < minimumnum:
            print('Number smaller the maximum allowed range')
        break
        ## -------------------------- ##                  
        if minimum is None or num < minimum:
            minimum = num
        if maximum is None or num > maximum:
            maximum = num
    return minimum, maximum

def main():
    print("Input done when finished")
    print("Input thresholds")
    maximumnum = int(input("Input maximum number: "))
    minimumnum = int(input("Input minimum number: "))
    minimum, maximum = process_input(maximumnum, minimumnum)
    print("Maximum:", maximum)
    print("Minimum:", minimum)
    print("Try again")

if __name__ == '__main__':
    while True:
        main()

希望这有帮助。

我经常使用这样的范式来完成"循环,直到我这么说"之类的事情。

class UserKilledException(KeyboardInterrupt):
     pass
try:
    while True:
        #do stuff
except UserKilledException:
    #do cleanup here

只需让您的代码在用户决定以某种方式关闭应用程序时抛出UserKilledException即可。 如果它是一个 cli 应用程序,那么KeyboardInterrupt就可以了。

最新更新