@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) + " новых сообщения")
  • Вопрос задан
  • 1939 просмотров
Решения вопроса 1
@kisaa
или у нас от 11 до 19 сообщений

А у вас в условии что написано?
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
@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) + " новых сообщения")
Ответ написан
@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) + ' новых сообщений')
Ответ написан
Ваш ответ на вопрос

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

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