Как сократить код до одной строки
цель кода подчитать количество чисел которые больше 9 и кратны 5 ,а конец ввода чисел является ноль
a=int(input())
x=0
while a!=0:
a = int(input())
if a>9 and a%5==0:
x+=1
print(x)
Если нельзя сократить его до одной строчки, то хотелось-бы просто узнать как его можно оптимизировать
Ответы (4 шт):
Автор решения: Qwertiy
→ Ссылка
В первом числе что, длина? Тогда как-то так:
print(sum(x>9 and x%5==0 for x in (int(input()) for _ in range(int(input())))))
Автор решения: Alexey Trukhanov
→ Ссылка
До одной не смогу, а оптимизировать - пожалуйста.
x = 0
while a := int(input()):
x = x + 1 if a > 9 and a % 5 == 0 else x
print(x)
Автор решения: Алексей Р
→ Ссылка
До одной так до одной :)
exec('x=0\nwhile(a:=int(input()))!=0:x+=(a>9 and a%5==0)\nprint(x)')
Автор решения: Danis
→ Ссылка
Можно использовать функцию iter:
print(sum((x > 9 and x % 5 == 0) for x in map(int, iter(input, "0"))))