Как мне оптимизировать код, чтобы постоянно не проверять условие if перед каждым input

Рейтинг: 0Ответов: 1Опубликовано: 01.04.2023
def make_album(artist,album_name,soundtrack=None):
    album = {artist: album_name}
    if soundtrack:
        album['soundtracks'] = soundtrack
    return album

while True:
    artist_input = input("What's your name aritst? ")
    if artist_input == 'q':
        break

    album_input = input("Tell me your album name. ")
    if album_input == 'q':
        break

    track_input = input("How many soundtracks you have? ")
    if track_input == 'q':
        break

    print(make_album(artist_input, album_input, track_input),'\n')

Привет! Я хочу узнать любой способ, который поможет проверять ввод 'q' пользователем, но при этом что бы этот новый способ был более оптимизированный, что бы каждый раз не писать условие 'q' перед каждым input.

Заранее спасибо ребят!

Ответы

▲ 0Принят

Можно вынести в функцию, а выход делать с помощью исключения:

def get_input(prompt):
    user_input = input(prompt)
    if user_input == 'q':
        raise ValueError("User requested to quit.")
    return user_input

while True:
    try:
        artist_input = get_input("What's your name artist? ")
        album_input = get_input("Tell me your album name. ")
        track_input = get_input("How many soundtracks do you have? ")

        print(make_album(artist_input, album_input, track_input), '\n')
    except ValueError as e:
        break