Bobibekov
@Bobibekov

Почему возбуждение исключения срабатывает не по условию?

# ---> Ниже в комментариях - проблемное место
albom = []

def make_albom(name_artist, name_albom, count_songs=None):
    if count_songs:
        return {name_artist: name_albom, 'songs': count_songs }
    else:
        return {name_artist: name_albom}
try:
    while True:
        name_artist = input('Имя артиста: ')
        name_albom = input('Название альбома: ')

        if not name_artist or not name_albom:
            raise Exception('Введена пустая строка')

        count_songs = int(input('Кол-во песен: '))
        print(count_songs)
        
        if count_songs > 30:
            raise Exception('Больше 30 песен это уже не альбом!')
        # ТУТ НЕПОНЯТНИЦА! --------------------------------------------------------------------------------
        # При вводе положительных чисел не больших 30 и нуля срабатывает след. условие 
        # и возбуждается исключение (всегда)
        elif count_songs < 30:
            raise Exception('Не может быть отрицательным числом!')
        #----------------------------------------------------------------------------------------------------------

        if count_songs:
            albom.append(make_albom(name_artist, name_albom, count_songs))
        else:
            albom.append(make_albom(name_artist, name_albom))
            
        print(albom)
        
        go_next = input('Введите [да] да продолжения:')
        
        if go_next != 'да':
            break
        
except ValueError:
    print('Не правильно введены значения!')
except Exception as e:
    print(e)  
except:
    print('Что-то не так!')
else:
    print('Программа прошла ровно!')
finally:
    print('The end!')
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы