В институте биоинформатики по офису передвигается робот. Недавно студенты из группы программистов написали для него программу, по которой робот, когда заходит в комнату, считает количество программистов в ней и произносит его вслух: "n программистов".
Для того, чтобы это звучало правильно, для каждого n нужно использовать верное окончание слова.
Напишите программу, считывающую с пользовательского ввода целое число n (неотрицательное), выводящее это число в консоль вместе с правильным образом изменённым словом "программист", для того, чтобы робот мог нормально общаться с людьми, например: 1 программист, 2 программиста, 5 программистов.
В комнате может быть очень много программистов. Проверьте, что ваша программа правильно обработает все случаи, как минимум до 1000 человек.
a=int(input())
if a%5==0:
print(a ,'программистов')
if a>0 and a%2==0:
print(a, 'программиста')
if not a%5==0 and not a%2==0:
print(a, 'программист')
import sys
def main(programmers: int):
with open("task.py", "w") as f:
f.write("a = int(input('Введите количество программистов: '))\n\n")
f.write(f"if a == 0:\n\tprint(0, 'программистов')\n")
for i in range(1, programmers + 1):
programmers = "программист" + get_ending(i)
f.write(f"elif a == {i}:\n\tprint({i}, '{programmers}')\n")
print("Твоя программа готова! Запусти её командой: python task.py")
def get_ending(num: int) -> str:
if num % 100 in {11, 12, 13, 14}:
return "ов"
elif num % 10 in {0, 5, 6, 7, 8, 9}:
return "ов"
elif num % 10 in {2, 3, 4}:
return "а"
elif num % 10 in {1}:
return ""
else:
raise AssertionError("Unexpected error")
if __name__ == '__main__':
try:
programmers = abs(int(input(
"Для какого количества программистов сгенерировать решения?\nВведи целое число: ")))
except ValueError:
print("Количество программистов должно быть целым числом!")
sys.exit(1)
main(programmers)
words = ['ворона', 'вороны', 'ворон']
def plural(num, words):
if num == 0:
return words[2]
d10 = num % 10
d100 = num % 100
if d10 == 1 and d100 != 11:
return words[0]
elif (2 <= d10 <= 4) and (d100 < 10 or d100 > 20):
return words[1]
else:
return words[2]
num = 21
print(num, plural(num, words))