循环的高级用法
单元小结
程序循环的结构
for … in 遍历循环 计数、字符串、列表、文件…
while无限循环
continue和break保留字 退出当前循环层次
循环else的高级用法 与break有关
random库基本介绍
random库是使用随机数的python标准库
伪随机数 采用梅森旋转算法生成的 伪 随机序列中元素
random库主要用于生成随机数
使用random库 import random
random 库包括两类函数 常用共8个
基本随机数函数 seed ,random
扩展随机数函数 randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
基本随机数函数
随机数种子
基本随机数函数
seed(a None) 初始化给定的随机数种子 默认为当前系统时间
random.seed(10) #产生种子10对应的序列
random() 生成一个[0.0,1.0)之间的随机小数
random.random() 0.5266039791113609
扩展随机数函数
random
randint() randrange() choice() getrandbits() shuffle() uniform()
函数的详细描述
randint(a,b) 生成一个[a,b]之间的整数
import random random.randint(10,100)
randrange(m,n[,k]) 生成一个[m,n)之间以k为步长的随机整数
random.randrange(10,100,10)
getrandbits(k) 生成一个k比特长的随机整数
random.getrandbits(16) 11316
uniform(a,b) 生成一个[a,b]之间的随机小数
random.uniform(10,100) 78.61088600545293
choice(seq) 从列表seq中随机选择一个元素
random.choice([1,2,3,4,5,6,7,8,9])
shuffle(seq) 将序列seq中元素随机排列 返回打乱后的序列
s [1,2,3,4,5,6,7,8,9];random.shuffle(s);print(s) [7, 2, 1, 8, 6, 4, 3, 5, 9]
随机数函数的使用
需要掌握的能力
能够利用随机数种子产生“确定”伪随机数
能够产生随机整数
能够对序列类型进行随机操作
圆周率的计算
#CalPiV1.py
N 100
for k in range(N):
pi 1/pow(16,k)*(4/(8*k 1)-2/(8*k 4)-1/(8*k 5) - 1/(8*k 6))
print( 圆周率的值是:{} .format(pi))
#CalPiV1.py
N 100
for k in range(N):
pi 1/pow(16,k)*(
4/(8*k 1)-2/(8*k 4)-
1/(8*k 5) - 1/(8*k 6))
print( 圆周率的值是:{} .format(pi))
#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.0:
hits hits 1
pi 4*(hits/DARTS)
print( 圆周率的值是:{} .format(pi))
print( 运行时间是:{:.5f}s .format(perf_counter()-start))
圆周率的计算举一反三
理解方法思维
数学思维 找到公式 利用公式求解
计算思维 抽象一种过程 用计算机自动化求解
程序运行时间分析
使用time库的计时方法获得程序运行时间
改变撒点数量 理解程序运行时间的分布
初步掌握简单的程序性能分析方法



