Задать вопрос
@voltfeex
Мечтаю стать программистом, но не пойму как...

Можно сделать эту программу компактней?

print('Здравствуйте, я робот который определят, какое сейчас время года по числу :)')
date = input('Введите какое сейчас число: ')
if int (date) <= 2:
    print('Сейчас на улице зима, сиди дома ;)')
elif int (date) <= 5:
        print('Ой весна иди делай фотки!')
elif int (date) <= 8:
    print('Везет тебе сейчас у тебя лето, а мне тут людям помогать, но мне даже это нравиться')
elif int (date) <= 11:
    print('Вот и осень подоспела, идти в школу, а мне тут сидеть')
else:
    print('Сейчас зима и вроде грустно, но уже скоро 2020 год!')


Сделал свое ДЗ и думаю можно ли уменьшить код..
  • Вопрос задан
  • 121 просмотр
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 5
alternativshik
@alternativshik
сегодня 21 число. Что он ответит?
Ответ написан
@shadrin_ss
Junior
А что собственно уменьшать в коде который состоит только из логики?
И зачем такое странное определение, почему хотя-бы не по названию месяца типа "май", или по сегодняшней дате?
Ответ написан
Комментировать
half-life
@half-life
Я бы добавил немножко устойчивости и уменьшил бы операции преобразования типов.
spoiler
if __name__ == '__main__':
    print('Здравствуйте, я робот который определят, какое сейчас время года по числу :)')
    try:
        date = int(input('Введите какое сейчас число: '))
    except ValueError:
        print('Ты ввёл не число. Ты убил меня.')
    else:
        if date <= 2:
            print('Сейчас на улице зима, сиди дома ;)')
        elif date <= 5:
            print('Ой весна иди делай фотки!')
        elif date <= 8:
            print('Везет тебе сейчас у тебя лето, а мне тут людям помогать, но мне даже это нравиться')
        elif date <= 11:
            print('Вот и осень подоспела, идти в школу, а мне тут сидеть')
        else:
            print('Сейчас зима и вроде грустно, но уже скоро 2020 год!')

Ответ написан
Комментировать
@BJlaDuMup
print('Здравствуйте, я робот который определят, какое сейчас время года по числу :)')
date = int(input('Введите какое сейчас число: ')) 
if date <= 2:
    print('Сейчас на улице зима, сиди дома ;)')
elif date <= 5:
        print('Ой весна иди делай фотки!')
elif date <= 8:
    print('Везет тебе сейчас у тебя лето, а мне тут людям помогать, но мне даже это нравиться')
elif date <= 11:
    print('Вот и осень подоспела, идти в школу, а мне тут сидеть')
else:
    print('Сейчас зима и вроде грустно, но уже скоро 2020 год!')

Или:
print('Здравствуйте, я робот который определят, какое сейчас время года по числу :)')
date = int(input('Введите какое сейчас число: ')) 
if date <= 2: print('Сейчас на улице зима, сиди дома ;)')
elif date <= 5: print('Ой весна иди делай фотки!')
elif date <= 8: print('Везет тебе сейчас у тебя лето, а мне тут людям помогать, но мне даже это нравиться')
elif date <= 11: print('Вот и осень подоспела, идти в школу, а мне тут сидеть')
else: print('Сейчас зима и вроде грустно, но уже скоро 2020 год!')
Ответ написан
Комментировать
skipirich
@skipirich
проходил мимо
я не думаю что можно сильно сократить, но вот читабельности я бы добавил например вот так
def get_message(messages):
    for key in messages:
        if date <= key:
            return key
    return False

if __name__ == '__main__':
    
    messages = {
        2: 'Сейчас на улице зима, сиди дома ;)',
        5: 'Ой весна иди делай фотки!',
        8: 'Везет тебе сейчас у тебя лето, а мне тут людям помогать, но мне даже это нравиться',
        11: 'Вот и осень подоспела, идти в школу, а мне тут сидеть',
    }

    print('Здравствуйте, я робот который определят, какое сейчас время года по числу :)')

    try:
        date = int(input('Введите какое сейчас число: '))
    except ValueError:
        print('Не верный ввод(допускаются только цифирки)')
    else:
        key = get_message(messages)
        if key:
            print(messages[key]) 
        else: 
            print('Сейчас зима и вроде грустно, но уже скоро 2020 год!')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы