Python

Почему условие выполнилось так странно?

n = int(input())
count = 0
for i in range(1, n):
if n % 2 != 0:
count += n
n -= 1
print(n, count)
if n % 2 == 0:
count -= n
n -= 1
print(n, count)
f = (((-1) ** (n + 1)) * n)
print(count + ((-1) ** (n + 1)) * n)

n = int(input())
count = 0
for i in range(1, n):
if n % 2 != 0:
count += n
n -= 1
print(n, count)
elif n % 2 == 0:
count -= n
n -= 1
print(n, count)
f = (((-1) ** (n + 1)) * n)
print(count + ((-1) ** (n + 1)) * n)
Я не понимаю, почему оно выполняется по разному, и цикл выходит за рамки, объясните, мне, пожалуйста, условия же противоположны??
"противоположны" они были бы, если бы применялись к одним и тем же значениям

ты обновляешь n внутри первого условия, соответственно второе тоже выполняется (ты всегда просто единичку вычитаешь и нечетное становится четным)
Ivan Pantskhava
Ivan Pantskhava
34 941
Лучший ответ
Алекс Жданов Огромное спасибо!
Не эбу, что за заголовки вселенной...
загуглить отладчик Python или Отладчик и название вашей среды разработки где пишите код !
Через отладчик можно узнать что находится в переменной при каждой операции.

Либо делается так.

Цикл
(
print имя переменной
И здесь pause какая то пауза в Python не знаю как пишется.
Чтобы ты успел рассмотреть что находится в переменной.
)

А еще я думаю нужно просто сидеть и читать по слогам или попытаться выполнить алгоритм самому еще раз.

Если там количество или число цикла большое слишком возьми да и укороти его.
Со 100 циклов на 2 3 цикла.
И вставь в цикл print с pause чтоб видеть что получается в переменной.

Либо гуглить отладчик и название твоей среды разработки где пишешь код.
Что то типа Debugger Python Ide или отладчик Питон как то так.
Алекс Жданов Я пользовался отладчиком, и уже сам пытался выполнить алгоритм даже в письменном виде, но спасибо за помощь!
Сложно
?? ????
?? ????
294
как IT-специалист я могу вам сказать с учредителем что я не знаю как я буду в офисе в пятницу и когда
n = int(input())
count = 0
for i in range(1, n):
if n % 2 != 0:
count += n
n -= 1
print(n, count)
if n % 2 == 0:
count -= n
n -= 1
print(n, count)
f = (((-1) ** (n + 1)) * n)
print(count + ((-1) ** (n + 1)) * n)
Андрей Олейник n = int(input())
count = 0
for i in range(1, n):
if n % 2 != 0:
count += n
elif n % 2 == 0:
count -= n
n -= 1
print(n, count)
f = (((-1) ** (n + 1)) * n)
print(count + ((-1) ** (n + 1)) * n)
2 условие
Чё наxуй