如果输入空白行,如何退出程序?

时间:2019-05-20 12:02:55

标签: python loops exit

如果输入空白行,我只想退出程序。我需要什么?

我已经尝试过sys.exit()了,但这并没有退出程序,只是返回了一个空白

while True: # Ask for patient ID
        try:
            i = int(input("Enter patient ID (or blank to exit): "))
            if not i:
                sys.exit()
            else:
                a = len(str(abs(i))) # Checking valid integer
                if a != 6: # Checking id is six digits
                    print("Enter valid patient ID (six digit positive integer)")
                else:
                    break
        except ValueError:
            print("Enter valid patient ID (six digit positive integer)")

我只是希望程序退出。

2 个答案:

答案 0 :(得分:3)

您的错误是您正在读取输入并将其立即转换为整数!您需要检查字符串格式的空白输入,然后将其转换为数字。

import sys

while True: # Ask for patient ID


        try:

            #Get the user's input as a string.
            inpu   = input("Enter patient ID (or blank to exit): ")

            #If it's blank, exit.
            if inpu == "":
                sys.exit(0)

            else:

                #Now convert the inputed string into an integer.
                i      = int(inpu)
                a      = len(str(abs(i))) # Checking valid integer

                if a != 6: # Checking id is six digits
                    print("Enter valid patient ID (six digit positive integer)")
                else:
                    break

        except ValueError:
            print("Enter valid patient ID (six digit positive integer)")

答案 1 :(得分:0)

如果出现错误: sys.exit(1) 另外,如果成功运行,则可以使用 sys.exit() sys.exit(0)

但是您的代码应类似于:

    while True: # Ask for patient ID
        try:
            i = raw_input("Enter patient ID (or blank to exit): ")
            if len(i) == 0:
                sys.exit()
            else:
                a = len(str(abs(i))) # Checking valid integer
                if a != 6: # Checking id is six digits
                    print("Enter valid patient ID (six digit positive integer)")
                else:
                    break
        except ValueError:
            print("Enter valid patient ID (six digit positive integer)")

也许用输入替换raw_input

希望可以为您提供帮助,

祝你有美好的一天。