查看原文
其他

Python之循环结构——实战计算自然底数e,圆周率Π

柯广 大数据技术派 2022-10-15

循环结构是编程中经常使用的语法,循环结构的巧妙使用对编程来说很重要。刚才群里还有同学说自己不会用循环,其实很简单,只是没有用过才觉得难。这里介绍Python循环语法的用法,并且使用两个小例子,来加强训练。

条件判断if语句

if语句,就像是数学中的是非,逻辑判断。主要用法如下:

1>>> a = 2
2>>> if a > 1:
3...     print 'yes'
4... else:
5...     if a == 1:
6...         print '--'
7...     else:
8...         print 'no'
9... 
10yes

else if 也可以定义成elif


While循环结构
1>>> sum = 0
2>>> i = 1
3>>> while i <= 100:
4...     sum = sum + 1
5...     i = i + 1
6... 
7>>> sum
8100

这里计算1到100的和,通过变量i自增控制。


for循环结构
1>>> sum
2100
3>>> sum = 0
4>>> for i in range(1101):
5...     sum = sum + 1
6... 
7>>> sum
8100

这里range(1,101)产生1到100的序列,进行累加。



下面是3个例子,一个是计算自然底数e = 1 + 1/x + 1/x平方 + ... + 1/ Xn次方,第二个例子是计算圆周率派,第三个是将10000个数字,平均保存到10个文件。这三个例子都能很好的锻炼,循环语句的语法技巧。

计算自然底数e

自然底数e等于1..n的倒数平方和,Python实现如下:

1>>> e = 1
2>>> for i in range(110**4 + 1):
3...     e = e + 1.0 / i ** 2
4... 
5>>> e
62.6448340718480696

难度系数:💗


计算圆周率Π

圆周率派,怎么算呢,大家数学都不是体育老师教的,边长为2的正方形,内切单位圆。单位元面积记为S1 = Π,正方形面积记为S2 = 4。有一个公式,一年没学数学了,记得根据蒙特卡洛方法,扔随机点,到单位元点数为N1,正方形为N2,公式应该是S1 / S2 = N1 / N2。那么有:


1>>> import random
2>>> s = 0
3>>> for i in range(1,10**5 + 1):
4...     x = random.random()
5...     y = random.random()
6...     if x ** 2 + y ** 2 < 1:
7...         s = s + 1
8... 
9>>> print s / 100000.0 * 4
103.14248

难度系数:💗💗


10000个数字均分

将10000个数字平均保存到10个文件,0~1000保存到一个文件,1000~2000一个文件

1# -*- coding:utf-8 -*-
2
3if __name__ == '__main__':
4    filename = 'a.txt'
5    count = 0
6    # 模拟数据
7    with open(filename,'w+') as file:
8        while count < 10000:
9            file.write(str(count) + "\n")
10            count = count + 1
11
12    with open(filename,'r+') as file:
13        line = file.readline()
14        count = 0
15        savefile = str(count / 1000) + '.txt'
16        f = open(savefile,'w+')
17        while line:
18            if count > 0 and count % 1000 == 0:
19                f.close()
20                savefile = str(count / 1000) + '.txt'
21                f = open(savefile,'w+')
22            f.write(line)
23            count = count + 1
24            line = file.readline()

结果,10000个数字平均分到10个文件了。

难度系数:💗💗💗💗💗



猜你可能喜欢

Python系列之——好用的Python开发工具

Python系列之——基本数据类型用法就该这么讲!!!

Python系列之环境安装

R语言(绘图入门)

Python科学计算:numpy


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存