自学Python:三种方法计算平方和

Python013

自学Python:三种方法计算平方和,第1张

计算1-10的平方之和,下面是我手算的。如果是求100,1000,10000呢?手算要到什么时候。下面学习用Python计算,并且是3种不同的方法

方法一:通过FOR循环完成

zs=0

for  i in range(1,11):

    zs +=i**2

print(zs)

执行结果:

385

此方法是常用算法,不能够体现Python的优美风格,简单来说就是不够Pythonic。

方法二:列表生成法

qh= [i**2 for i in range(1,11)]

zs=0

zs=sum(x for x in qh)

print(zs)

执行结果:

385

此方法将占用大量的CPU和内存资源,如果计算的数量巨大的时候,会导致系统崩溃。

方法三:列表生成器法

zs=0

zs= sum(i**2 for i in range(1,11))

print(zs)

执行结果:

385

最后这个方法是通过生成器求和,你不产生列表,对内存占用保持不变,不会导致系统崩溃。

当然Python不可能就这三种方法,你还能想到那些方法呢?

而且这个时候想要计算100,1000,10000的平方和,那也是非常简单的事情。只要修改一下RANGE后面的结束值就可以了,计算结果分别如下:338350,333833500,333383335000。你能帮忙手动验证一下吗?

如果说你要计算的是立方和,也非常简单,只要修改i**2为i**3。

________________END______________

python创建列表1的平方2的立方3的四次方5的六次方详细如下:python创建列表[1的平方,3的平方,5的平方]:a=[1,2,3]b=[]for i in a:b.append(i**(i+2))print(b)还可以简洁一些。a=[1,2,3]b=[i**(i+2) for i in a]print(b)

# encoding: utf-8

# Python 3.6.0

s=input('输入一个数字:')

print(eval('pow('+s+',2)'))