• Яндекс.Практикум, где ошибка?

    verbalistus
    @verbalistus
    Бот не видит почему-то вложенную функцию и выдает ошибку "Функция print_friends_count() не существует. Не удаляйте её." Хотя условия задачи выполняются. НаШкодил следующее:

    FRIENDS = ['Серёга', 'Соня', 'Дима', 'Алина', 'Егор']
    count = len(FRIENDS)
    def process_query(query):
        print('Привет, я Анфиса!')
        if query == 'Сколько у меня друзей?':
            def print_friends_count(count):
                if count == 1:
                    print('У тебя',count,'друг')
                elif 2 <= count <= 4:
                    print('У тебя',count,'друга')
                elif count >= 5:
                    print('У тебя',count,'друзей')
            print_friends_count(count)
        else:
            print('<неизвестный запрос>')
    process_query('Сколько у меня друзей?')
    process_query('Как меня зовут?')


    Результат:

    Привет, я Анфиса!
    У тебя 5 друзей
    Привет, я Анфиса!
    <неизвестный запрос>
    Ответ написан
    Комментировать
  • Как верно написать код?

    verbalistus
    @verbalistus
    Получилось так:

    may_2017 = [24, 26, 15, 10, 15, 19, 10, 1, 4, 7, 7, 7, 12, 14, 17, 8, 9, 19, 21, 22, 11, 15, 19, 23, 15, 21, 16, 13, 25,
                17, 19]
    may_2018 = [20, 27, 23, 18, 24, 16, 20, 24, 18, 15, 19, 25, 24, 26, 19, 24, 25, 21, 17, 11, 20, 21, 22, 23, 18, 20, 23,
                18, 22, 23, 11]
    def comfort_count(temperatures):
        comfort = 0
        for i in temperatures:
            if 22 <= i <= 26:
                comfort +=1
        print('Количество комфортных дней в этом месяце:',comfort)
    # дальше код не меняйте
    comfort_count(may_2017)  # узнаем, что было в мае 2017 г.
    comfort_count(may_2018)  # узнаем, что было в мае 2018 г.


    Результат

    Количество комфортных дней в этом месяце: 5
    Количество комфортных дней в этом месяце: 13
    Ответ написан
  • Не могу найти ошибку в программе, хотя она работает?

    verbalistus
    @verbalistus
    Получилось так:

    def print_friends_count(friends_count, name =''):  # добавьте новый аргумент
        if friends_count == 1:
            text = '1 друг'
        elif 2 <= friends_count <= 4:
            text = str(friends_count) + ' друга'
        elif friends_count >= 5:
            text = str(friends_count) + ' друзей'
        if name !='':
            print(name +', у тебя '+text)
        else:
            print('У тебя ' + name + text)
    # дальше код не меняйте
    print_friends_count(3, 'Артём')
    print_friends_count(friends_count=7, name='Марина')
    print_friends_count(6)
    print_friends_count(4, name='Настя')
    Ответ написан
    Комментировать
  • Яндекс.Практикум. Функции. Где ошибка?

    verbalistus
    @verbalistus
    У меня так получилось:
    for friends_count in range (11):
        def print_friends_count(friends_count):
            if friends_count == 1:
                print('У тебя 1 друг')
            elif 2 <= friends_count <= 4:
                print('У тебя',str(friends_count),'друга')
            elif friends_count >= 5:
                print('У тебя',str(friends_count),'друзей')
        print_friends_count(friends_count)


    Правда не понятно, если вызвать не функцию print_friends_count, а как print(print_friends_count), то выдается строка вроде:


    None
    У тебя 1 друг
    None
    У тебя 2 друга
    None
    У тебя 3 друга
    None
    ...


    А что значит "None" в этом случае непонятно как то.
    Ответ написан
    Комментировать
  • Яндекс Практикум.Как научить Анфису правильно называть количество новых сообщений, когда их меньше 100?

    verbalistus
    @verbalistus
    У меня так получилось:
    for messages_count in range(0, 100):
        remainder = messages_count % 10
        if messages_count == 0:
            print('У вас нет новых сообщений')
        elif remainder == 1 and messages_count != 11:
            print('У вас',str(messages_count),'новое сообщение')
        elif remainder == 1 and messages_count == 11:
            print('У вас',str(messages_count),'новых сообщений')
        elif remainder >= 2 and messages_count < 5\
                or messages_count >21 and messages_count < 25\
                or messages_count >31 and messages_count < 35\
                or messages_count >41 and messages_count < 45\
                or messages_count >51 and messages_count < 55\
                or messages_count >61 and messages_count < 65\
                or messages_count >71 and messages_count < 75\
                or messages_count >81 and messages_count < 85\
                or messages_count >91 and messages_count < 95:
                print('У вас',str(messages_count),'новых сообщения')
        else:
           print('У вас',str(messages_count),'новых сообщений')
    Ответ написан
    Комментировать