Задать вопрос
@Timebird

Объясните ошибку в простой задаче [Python]?

Здравствуйте! Подскажите пожалуйста, почему данный код для данной задачи работает неправильно?

Дано N чисел: сначала вводится число N, затем вводится ровно N целых чисел. Подсчитайте количество нулей среди введенных чисел и выведите это количество. Вам нужно подсчитать количество чисел, равных нулю, а не количество цифр.

print('Введите количество чисел: ')
N = int(input())
for i in range(N):
	print('Введите число: ')
	n = int(input())
	for i in range(n):
		kol=0
		if i==0:
			kol+=1
		print(kol)
  • Вопрос задан
  • 12794 просмотра
Подписаться 1 Оценить 1 комментарий
Решения вопроса 1
winordie
@winordie
Лучшая документация -- исходники
Зачем
for i in range(n):
    kol=0 
    if i==0: 
        kol+=1 
print(kol)

Просто
print('Введите количество чисел: ')
N = int(input())
kol=0
for i in range(N):
  print('Введите число: ')
  n = int(input())
  if n==0: 
    kol+=1 
print(kol)
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@766dt
Ну основная проблема в том, что не тогда прибавляете 1 к счетчику, собственно об этом уже сказали.
Если хочется покороче, и попроще(чтоб не думать когда делать +1), то можно так:
n = int(input('Введите количество чисел: '))
numbers = [int(input('Введите число: ')) for i in range(n)]
print(numbers.count(0))
Ответ написан
Комментировать
trnc
@trnc
Решения задачи уже привели. Но вот еще совет, старайтесь использовать генераторы в python и методы встроенных типов, это очень удобно, за вас уже все сделано, надо только подобрать правильные инструменты.
Ответ написан
Комментировать
@abcd0x00
>>> def f():
...     return sum(int(input()) == 0 for _ in range(int(input())))
... 
>>> print(f())
5
0
2
0
2
0
3
>>>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы