Как сократить код до одной строки

цель кода подчитать количество чисел которые больше 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"))))
→ Ссылка