Как мне выйти из всей программы через функцию? - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в python и хотел сделать «цифровую вывеску». У меня сейчас только «А» и «Б». Я не знаю, как полностью выйти из программы с помощью sys.exit (). Я предполагаю, что он только выходит из функции, а затем переходит к следующей строке кода, чтобы запросить следующую букву. Я хочу, чтобы он полностью выходил из программы после ввода "end", но все еще отображались буквы перед выходом. Введите второй символ: конец

, и вся программа остановится на этом, не запрашивая второй и третий символы, но отобразит только A

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Во-первых, нет необходимости импортировать sys просто для выхода из программы. используйте exit('Signboard Terminated') для завершения сообщением Signboard Terminated. Если я прав, код кажется нормальным, потому что вы сначала вводите символы, а затем передаете его в функцию для печати вывески. Если вам нужно завершить программу, когда пользователь набирает end, вам нужно будет проверять каждый ввод пользователя, что если он набрал слово end перед вызовом функции getLetter ().

т.е.

def exitFun(letter):
    if letter.lower() == "end":
        exit('terminated')

print('Enter first character:')
firstLetter=input()
exitFun(firstLetter)
time.sleep(0.2)
print('\nEnter second character:')
secondLetter=input()
exitFun(secondLetter)
time.sleep(0.2)
0 голосов
/ 14 июля 2020

sys.exit действительно используется для завершения всей программы. В вашем случае поток программы, вероятно, неверен. Сравните с приведенным ниже кодом и решите, к какому рабочему процессу следует применять ваше приложение.

import sys

def getLetter(letter):
    if letter =='A'or letter=='a':
        print('<A>')
    elif letter =='B'or letter=='b':
        print('<B>')
    elif letter == 'space':
        print('<space>')
    elif letter == 'end':
        sys.exit('Signboard Terminated')
    else:
        print("<Other number>")

#instructions
print('Welcome to  virtual signboard\n')
print('Instructions:')
print('Enter each character individually (max: 10 characters).')
print('To enter a space, type "space"')
print('To finish, type "end"')

while True:
    print('Enter character:')
    character = input()
    #getting output
    getLetter(character)

...