@Moroz22848

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

В задание сказано: " Научите Анфису правильно называть количество новых сообщений, когда их меньше 100. Примените логический оператор or и множественное ветвление с elif, чтобы Анфиса выражалась грамотно. К примеру: «У вас 1 новое сообщение», «У вас 35 новых сообщений», «У вас 24 новых сообщения».
Последнюю цифру удобнее всего получать как остаток при делении на 10. В коде этого задания он вычисляется оператором модуло % "
В подсказке написано следующие: " Если остаток от деления на 10 равен нулю или он больше либо равен пяти, или у нас от 11 до 19 сообщений, нужен вывод print('У вас ' + str(messages_count) + ' новых сообщений')
Если остаток равен одному, вывод должен оканчиваться на слово "сообщение"
В остальных случаях - на слово "сообщения" "

Вот код:

for messages_count in range(0, 100):
    remainder = messages_count % 10
    if messages_count == 0:
        print("У вас нет новых сообщений")
    elif remainder == 0 or remainder >= 5 or messages_count >= 11 or messages_count == 19:
        print("У вас " + str(messages_count) + " новых сообщений")
    elif  remainder == 1:
        print ("У вас " + str(messages_count) + " новое сообщение")
    else:
        print ("У вас " + str(messages_count) + " новых сообщения")
  • Вопрос задан
  • 20651 просмотр
Решения вопроса 1
@kisaa
или у нас от 11 до 19 сообщений

А у вас в условии что написано?
Ответ написан
Пригласить эксперта
Ответы на вопрос 12
@briuhancik
# Нужно рассмотреть больше случаев в if-elif-else
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 == 0 or remainder >= 5 and remainder <=9:
print("У вас " + str(messages_count) + " новых сообщений")
elif messages_count >=11 and messages_count <=19:
print("У вас " + str(messages_count) + " новых сообщений")
elif remainder >1 and remainder <5:
print("У вас " + str(messages_count) + " новых сообщения")
Ответ написан
Комментировать
@Top-manager
Правильный ответ, который отвечает всем условиям задачи
# Нужно рассмотреть больше случаев в if-elif-else
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 == 0 or remainder>=5 or messages_count >=11 and messages_count <= 19:
print('У вас ' + str(messages_count) + ' новых сообщений')
else:
print('У вас ' + str(messages_count) + ' новых сообщения')
Ответ написан
Комментировать
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),'новых сообщений')
Ответ написан
Комментировать
@shturm2k
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print("У вас нет новых сообщений")
elif remainder == 0 or remainder >= 5 or messages_count >= 11 and messages_count <= 19:
print("У вас", messages_count, "новых сообщений")
elif remainder == 1:
print("У вас", messages_count, "новое сообщение")
else:
print("У вас", messages_count, "новых сообщения")
Ответ написан
Комментировать
@koksi_lapochka
Я сделал так. Криво, но работает.

# Нужно рассмотреть больше случаев в if-elif-else
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 == 2 and messages_count !=12:
print('У вас ' + str(messages_count) + ' новых сообщения')
elif remainder == 3 and messages_count !=13:
print('У вас ' + str(messages_count) + ' новых сообщения')
elif remainder == 4 and messages_count !=14:
print('У вас ' + str(messages_count) + ' новых сообщения')
elif messages_count >= 11 or messages_count <= 19:
print('У вас ' + str(messages_count) + ' новых сообщений')
elif remainder == 0 or remainder >= 5:
print('У вас ' + str(messages_count) + ' новых сообщений')
Ответ написан
Комментировать
@Aleks46ku
Вообщем как-то так, мне терпения не хватило или знаний.Так что так

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 >= 2 and remainder <= 4 and messages_count != 12 and messages_count != 13 and messages_count !=14 :
print('У вас ' + str(messages_count) + ' новых сообщения')
elif remainder >= 0 or remainder <= 5 and messages_count >= 11 and messages_count <= 19:
print('У вас ' + str(messages_count) + ' новых сообщений')
Ответ написан
@No_name451
Как вариант.

for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif messages_count >= 11 and messages_count <=14:
print('У вас ' + str(messages_count) + ' новых сообщений')
elif remainder == 1:
print('У вас ' + str(messages_count) + ' новое сообщение')
elif remainder >= 2 and remainder <= 4:
print('У вас ' + str(messages_count) + ' новых сообщения')
elif remainder >= 5 and remainder <= 9 or remainder == 0:
print('У вас ' + str(messages_count) + ' новых сообщений')
Ответ написан
Комментировать
@Chuilya
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder==0 or remainder>=5:
print('У вас',messages_count,'новых сообщений')
elif messages_count>=11 and messages_count<=19:
print('У вас',messages_count,'новых сообщений')
elif remainder==1:
print('У вас',messages_count,'новое сообщение')
Ответ написан
Комментировать
@zara2002
3 часа и наконец таки....
# Нужно рассмотреть больше случаев в if-elif-else
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder == 0 or remainder >= 5 or messages_count >= 11 and messages_count <= 19:
print('У вас ' + str(messages_count) + ' новых сообщений')
elif remainder == 1:
print('У вас ' + str(messages_count) + ' новое сообщение')
else :
print('У вас ' + str(messages_count) + ' новых сообщения')
Ответ написан
@peopleinbox
# Нужно рассмотреть больше случаев в if-elif-else
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder == 0 or remainder >= 5 or messages_count in range(11, 19):
print('У вас ' + str(messages_count) + ' новых сообщений')
elif remainder == 1:
print('У вас ' + str(messages_count) + ' новое сообщение')
else:
print('У вас ' + str(messages_count) + ' новых сообщения')
Ответ написан
Комментировать
@shestogun
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder == 0 or remainder >= 5 or messages_count == 11:
print ('У вас', messages_count, 'новых сообщений')
# напишите ваш код здесь

elif messages_count > 11 and messages_count < 19:
print ('У вас', messages_count, 'новых сообщений')
elif remainder == 1:
print ('У вас', messages_count, 'новое сообщение')
# напишите ваш код здесь
else:
print ('У вас', messages_count, 'новых сообщения')
# напишите ваш код здесь
Ответ написан
Комментировать
@Stikkibr
# Добавьте новые условия в elif и else
for messages_count in range(0, 100):
remainder = messages_count % 10
if messages_count == 0:
print('У вас нет новых сообщений')
elif remainder == 0 or remainder >= 5 \
or 11 <= messages_count <= 19:
# напишите ваш код здесь
print('У вас ' + str(messages_count) + ' новых сообщений')
elif remainder == 1 and messages_count != 11:
# напишите ваш код здесь
print('У вас ' + str(messages_count) + ' новое сообщение')
else:
# напишите ваш код здесь
print('У вас ' + str(messages_count) + ' новых сообщения')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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