Почему выдаёт ошибку?
s=0
k=0
n=int(input())
while n!=0:
s+=1
if n%2==0:
k+=n
n=int(input())
print(k)
print(s)
Вывод: File "/home/main.py", line 8 n=int(input()) ^ IndentationError: unindent does not match any outer indentation level
В Python вложенность блоков задаётся отступами, и отступ в каждом блоке должен быть одинаковым.
Смотрим отступы в строках внутри цикла while:
- строки
и ( s+=иif n%) написаны с отступом== : пробелов; - строка
( k+=n) написана с отступомпробелов, это тело if; - строка
( n=int(input())) написана с отступомпробела.
Когда интерпретатор доходит до строки
Чтобы исправить, нужно сделать отступы согласованными: тело while — n=int(input()) должна стоять на одном уровне с s+= и if, то есть тоже с отступом
Исправленная программа:
s=
k=
n=int(input())
while n!= :
s+=
if n% == :
k+=n
n=int(input())
print(k)
print(s)
Здесь n=int(input()) на одном уровне с s+=, поэтому читается на каждом шаге цикла. k+=n с отступом глубже, чем if, выполняется только для чётных n.
В Python блоки задаются отступами. Все строки одного блока должны иметь одинаковый отступ, а вложенный блок — отступ больше. Уменьшать отступ можно только до уже использованного уровня. Лучше всегда ставить по
Ошибка из-за неровных отступов: тело if сдвинуто на n=int(input()) на s+=, if, n=int(input())), в теле if — k+=n).
