其他
Python之循环结构——实战计算自然底数e,圆周率Π
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
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自增控制。
1 > sum
2100
3 > sum = 0
4 > for i in range(1, 101):
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等于1..n的倒数平方和,Python实现如下:
1 > e = 1
2 > for i in range(1, 10**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个数字平均保存到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个文件了。
难度系数:💗💗💗💗💗
猜你可能喜欢