Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 在python中使用For循环查找正偶数和负奇数之和_Python 2.7_For Loop - Fatal编程技术网

Python 2.7 在python中使用For循环查找正偶数和负奇数之和

Python 2.7 在python中使用For循环查找正偶数和负奇数之和,python-2.7,for-loop,Python 2.7,For Loop,有一个问题要求求正偶数和负奇数之和,1到100(所以1+2-3+4…+98-99+100)。这是我到目前为止所做的,如果我做的数学正确,正确的总数应该是52,但我得出的总数是50。有什么建议吗 lst = range(1,101) >>> total = 0 >>> for x in lst: ... if x % 2: ... total -= x ... else: ... total +=

有一个问题要求求正偶数和负奇数之和,1到100(所以1+2-3+4…+98-99+100)。这是我到目前为止所做的,如果我做的数学正确,正确的总数应该是52,但我得出的总数是50。有什么建议吗

lst = range(1,101)
>>> total = 0
>>> for x in lst:
...     if x % 2:
...             total -= x
...     else:
...             total += x
...
>>> total
50

我相信你的代码是对的,你的数学是错的。这里有三种解决问题的方法

您的解决方案:

lst = range(1,101)
total = 0
for x in lst:
    if x % 2:
        total -= x
    else:
        total += x
print(total)
五十

偶数加奇数之和:

def sumForLoop(max):
    positiveEven = sum(range(2,max+1,2))
    negativeOdd = -sum(range(1,max+1, 2))
    print(positiveEven + negativeOdd)
sumForLoop(100)
五十

总数的计算公式:

def sumFormula(max):
     print(-1**100 *math.floor(max/2))
sumFormula(100)

50

为什么你认为这等于52<代码>总和(范围(2101,2))-总和(范围(1100,2))==50。或者只是数学,
2+100==4+98==102*25和
1+99==3+97==100*25
,因此
102*25-100*25=50
。您的代码与输出不匹配<代码>1+2-3+4…+98-99+100
1
根据您的描述应该是
-1