Реализовать программу, которая:
Ожидает ноль или два аргумента командной строки:
Ноль, если пользователь хочет выводить текст случайным шрифтом.
Два, если пользователь хочет выводить текст определенным шрифтом, и в этом случае первый из двух должен быть -f или --font, а второй из двух должен быть именем шрифта.Запрашивает у пользователя str текста.
Выводит этот текст нужным шрифтом.
Если пользователь предоставляет два аргумента командной строки и первый не -f или --font или второй не является именем шрифта , программа должна выйти через sys.exit с сообщением об ошибке.
Это было мое решение:
Код: Выделить всё
def asci():
if len(sys.argv) == 1:
user_input = input("Input: ")
fig = Figlet()
fonts = fig.getFonts()
random_font = random.choice(fonts)
dig = Figlet(random_font)
text = dig.renderText(user_input)
print(text)
elif len(sys.argv) == 3:
if sys.argv[1] == '-f' or sys.argv[1] == '--font':
fig = Figlet()
fonts = fig.getFonts()
if sys.argv[2] in fonts:
dig = Figlet(sys.argv[2])
user_input = input("Input: ")
text = dig.renderText(user_input)
print(text)
else:
print("Invalid Usage")
sys.exit()
else:
print("Invalid Usage")
sys.exit()
else:
print("Invalid Usage")
sys.exit()
asci()

Теперь, если вместо этого я буду использовать sys.exit(1) во всем своем коде, все пройдет. У меня вопрос: почему sys.exit(1) устраняет все проблемы?
[img]https://i.sstatic.net /6dplYRBM.png[/img]
Подробнее здесь: https://stackoverflow.com/questions/793 ... ank-ian-an
Мобильная версия