方法一、普通方法
1、while循环
在终端输入vim sum.py新建一个python项目
输入代码
sum = 0 #定义sum
n = 500 #定义n
while n > 0:
sum = sum + n
n = n-1 #当n>0的时候,sum一直做加法运算,从500加到1,即实现了1到500的累加
print(sum)
保存退出vim,输入python sum.py运行,得到结果125250
2、for循环
还是用上面创建的那个项目
输入代码
sum = 0 #定义sum
for i in range(0,501): #定义i的取值范围是(0,501)区间
sum = sum + i # sum的值为i在取值范围内的和
print(sum)
保存退出vim,输入python sum.py运行,得到结果125250
方法二、高斯求和
print((1+500)*500/2) # 高斯公式
方法三、编写一个函数
1、for循环函数
代码如下
def wyy(n): # 定义一个函数,变量为n
sum = 0; # 定义一个对象作为最终求和的保存对象
for i in range(1,n+1): # 定义一个对象为i,范围是1到n+1
sum+ = i #sum的值为i取值范围所有数的和,即累加
return sum
s = wyy(500) #使用函数,令变量为500
print(s)
保存退出vim,输入python sum.py运行,得到结果125250
2、高斯求和函数
代码如下
def wyy(x,n): # 定义一个函数,变量为x和n
sum = 0; # 定义一个对象作为最终求和的保存对象
for i in range(x,n): # 定义一个对象i,范围是x到n
sum = (x+n)*(n+1-x)/2 # sum的值为首项x加末项n乘项数除以二,即高斯求和公式
return sum
s = wyy(1,500) #使用函数,令变量为1和500
print(s)
保存退出vim,输入python sum.py运行,得到结果125250.0
搞定
疑问:为什么while方法和for循环得到的答案都不含小数而高斯公式算出来的含有小数
方法四、使用内置函数
# Author:Wyy
# -*- coding = utf-8 -*-
# @Time :2022/9/4
# @Author:WYY
# @Site :
# @File :内置函数计算1-500和.py
# @Software: PyCharm
print("1-500的和为:",sum([i for i in range(1,501)]))
结果: