Python入门实例验证及结果之实例7 圆周率的计算 ##程序循环结构 ##random库

2020年月10日星期一
我们先来整理一下程序循环结构和random库的相关内容

#程序循环结构

##遍历循环
1、计数循环
在这里插入图片描述在这里插入图片描述
说明:range(M,N,K)函数是从M开始到N之前以K为步长的数字序列,K省略时步长为一
2、字符串遍历循环
在这里插入图片描述
说明:end=","是指在每个打印的字符串后加上一个逗号
3、列表遍历循环
在这里插入图片描述
4、文件遍历循环
在这里插入图片描述
##无限循环
while语句根据判断条件确定循环次数,当不满足条件时退出,或进入无限循环。
在这里插入图片描述
##循环控制保留字
break跳出并结束当前整个循环,执行循环后的语句
continue结束档次循环,继续执行后续次数循环
break和continue可以与for和while循环搭配使用
在这里插入图片描述在这里插入图片描述
注:一个break只能跳出一层循环
##循环的高级用法
循环与else
当循环没有被break语句退出时,执行else语句块
else语句块作为“正常”完成循环的奖励
这里else的用法与异常处理中else的用法相似
在这里插入图片描述

#random库

random库是使用随机数的标准库,直接使用import来使用它

##基本随机数函数

在这里插入图片描述在这里插入图片描述
编程中如果给出了随机数种子,那么下一次程序再次运行,只要种子相同,产生的随机数也相同,对于使用随机数的程序我们可以复现或者再现程序运行的过程,如果不使用随机数种子,它使用的是当前系统时间,难以再现,所以后面产生的随机数结果是完全随机的。只要我们调用了random.seed设置种子的函数,后续调用random函数相同,产生的随机数也是相同的,如上图右。
##扩展随机数函数
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

#圆周率的计算实例验证

1、公式法
在这里插入图片描述
代码一:

#CalPiV1.py pi=0 N=100 for i in range(N):
    pi+=1/pow(16,i)*(4/(8*i+1) - 2/(8*i+4) - 1/(8*i+5) - 1/(8*i+6) ) print("圆周率值为{}".format(pi))

结果一:
在这里插入图片描述2、蒙特卡罗法
在这里插入图片描述
让点随机散落在区域中,通过统计落在单位圆与落在整个区域的点的比值来近似确定圆周率
代码二:

#CalPiV2.py
from random import random
from time import perf_counter
DARTS=1000*1000
hits=0.0
start=perf_counter()
for i in range(1,DARTS+1):
    x,y=random(),random()
    dist=pow(x**2+y**2,0.5)
    if dist<=1:
        hits+=1
pi=4*hits/DARTS
print("圆周率值为{}".format(pi))
print("运行时间是:{:.5f}s".format(perf_counter()-start))

结果二:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值