Как выйти из программы, если введена пустая строка? - PullRequest
2 голосов
/ 20 мая 2019

Я просто хочу выйти из программы, если введена пустая строка. Что мне нужно?

Я пробовал 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 ]

3 голосов
/ 20 мая 2019

Ваша ошибка заключалась в том, что вы читали и сразу преобразовывали входные данные в целое число! Вам необходимо проверить наличие пустого ввода в формате строки, а затем преобразовать его в число.

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)")
0 голосов
/ 20 мая 2019

В случае ошибки: 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 на ввод

Надеюсь, что может помочь вам,

Хорошего дня.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...