Выдает ошибку? Какую? Что значит "сократить"? Сделать код короче, не меняя его смысл?
Что значат цвета в таблице? Опишите словами, что код должен делать.
Вот задача:
В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов".
Для того, чтобы это звучало правильно, для каждого nn нужно использовать верное окончание слова.
Напишите программу, считывающую с пользовательского ввода целое число nn (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом "программист", для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов.
В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек.
Дополнительный комментарий к условию:
Обратите внимание, что задача не так проста, как кажется на первый взгляд. Если ваше решение не проходит какой-то тест, это значит, что вы не рассмотрели какой-то из случаев входных данных (число программистов 0 \le n \le 10000≤n≤1000). Обязательно проверяйте свои решения на дополнительных значениях, а не только на тех, что приведены в условии задания.
Так как задание повышенной сложности, вручную код решений проверяться не будет. Если вы столкнулись с ошибкой в первых четырёх тестах, проверьте, что вы используете только русские символы для ответа. В остальных случаях ищите ошибку в логике работы программы.
Вот мой код:
n=int(input())
if n%10==0 or n%100==11 or 12 or 13 or 14:
print(n ,"программистов")
elif n%10==1 or n%100==31 or 51 or 71 or 91:
print(n ,"программист")
elif n%10==2 or 3 or 4 or n%100=32 or 52 or 72 or 92 or 33 or 53 or 73 or 93 or 34 or 54 or 74 or 94:
print(n ,"программиста")
Еще один товарищ, который считает, что a == 2 or 3 означает "(а равно 2) или (а равно 3)".
Тогда как на самом деле это "(а равно 2) или (3 != 0)", что всегда равно "истина", независимо от значения a.
Вот честно, откуда вы все берёте эту идею? Ни на каком другом Q&A сайте я такого не видел.
Правильно будет или a == 2 or a == 3, или a in (2, 3)
EZVCE, да я понимаю, просто это на удивление специфичная ошибка, которой я раньше не встречал - а тут встречаю регулярно. =)
Как будто дословный перевод с русского на питон.