посчитать кол-во нулей в числе Python
Eсть вот такой кусок кода надо чтобы он при вводе числа в котором есть ноль, выдавал это кол-во нулей
def zero(value):
x = 0
if value == '0':
print(x)
x = x + 1
F = input()
zero(F)
Не могу понять, что надо исправить
Ответы (4 шт):
Автор решения: vp_arth
→ Ссылка
Если по честному работать с числом, то нужно делить:
def foo(n):
if n < 0:
return foo(-n)
i = 0
while n:
i += n % 10 == 0
n //= 10
return i
assert 3 == foo(10230240)
Для строки можно так:
def sfoo(sn):
# if sn[0] == '-': return sfoo(sn[1:])
# return sn.count('0')
# len([*filterfalse(int, sn)])
# return len([1 for d in sn if d == '0'])
# return sum(d == '0' for d in sn)
i = 0
for d in sn:
i += d == '0'
return i
assert 3 == sfoo('10230240')
Автор решения: Zhihar
→ Ссылка
если надо работать только с числом:
num = -10203040506070809
count = 0
value = abs(num)
while value != 0:
count += int(value % 10 == 0)
value //= 10
print(count)
абсолютное значение берется, потому что -1 // 10 = -1 и цикл будет бесконечным для отрицательных чисел
если можно работать со строкой:
num = -10203040506070809
count = str(num).count('0')
print(count)