总和=(1**2)和#x2B;(2**2)-(3**2)和#x2B;(4**2)-,…,+;(n**2)python程序代码

总和=(1**2)和#x2B;(2**2)-(3**2)和#x2B;(4**2)-,…,+;(n**2)python程序代码,python,loops,for-loop,while-loop,Python,Loops,For Loop,While Loop,编写一个程序,使用“for”和“While”循环显示python中(1**2)+(2**2)-(3**2)+(4**2)-,…,+(n**2)程序代码的总和 虽然我只为+迭代编写,如下代码所示,但是+,-,+,-迭代非常困难。这是我的+迭代代码: nstart = 1 nend = 4 count = 0 Sum = 0 for i in range(nstart,nend+1): count+=1 d = i**2 Sum = Sum + d print(cou

编写一个程序,使用“for”和“While”循环显示python中
(1**2)+(2**2)-(3**2)+(4**2)-,…,+(n**2)
程序代码的总和

虽然我只为
+
迭代编写,如下代码所示,但是
+,-,+,-
迭代非常困难。这是我的
+
迭代代码:

nstart = 1
nend = 4
count = 0
Sum = 0
for i in range(nstart,nend+1):
    count+=1
    d = i**2
    Sum = Sum + d
    print(count,'**2 = ', d )

print('Sum = ', Sum)
#This program print same as [(1**2,+ 2**2,+ 3**2= 9,+,,,,+n**2 and sum of them)]

您可以执行
%2
检查以检查奇数,并相应地将符号设置为
+
-

sum = 0
for i in range(1, n+1):
    if i != 1 and i % 2:
        sum -= (i ** 2)
    else:
        sum += (i ** 2)

对于
n
值4,这将输出12。

另一个选项:使用
符号
变量并相应地更改它

sum = 1**2
sign = 1 #positive
for i in range(2, n+1):
    sum += sign * (i ** 2)
    sign *= -1 #flip sign

也许你可以检查
i%2
并相应地更改
d
的符号。你的公式中有一个奇怪的不一致性:为什么第一项和第二项都是正的?符号不应该从一开始就交替吗?我的问题是这样的:sum=1+2-3+4-5等于-1,我想在for循环中写入相同的值。这样做,这就是使用
for
循环。