如何使程序无限循环?

2024-07-02 14:55:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从一开始就无限期地循环这个代码(直到用户杀死它),这样我就不必一直重新运行它了。有什么办法使这成为可能吗?我会很感激你的帮助太好了。那个程序应该在用户输入“done”(并打印所有细节)后重新启动

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")

Tags: 用户nonenumberinputifnumintprint
3条回答

为什么不把整个剧本换成另一个呢?要停止,用户必须终止正在运行的进程。你知道吗

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")

我经常使用这样的范例来完成一个“循环,直到我这么说” 差不多吧。你知道吗

class UserKilledException(KeyboardInterrupt):
     pass

try:
    while True:
        #do stuff
except UserKilledException:
    #do cleanup here

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

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

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()

希望这有帮助。你知道吗

相关问题 更多 >