程序的控制结构
程序的分支结构
单分支结构
二分支结构
紧凑形式:<表达式1> if <条件> else <表达式2>
多分支结构
条件判断及组合
程序的异常处理
try:
<语句块1>
except:
<语句块2>
try:
num=int(input("请输入一个整数:"))
print(num**2)
except:
print("输入的不是整数")
try:
<语句块1>
except <异常类型>:#标注异常名称之后只响应此类异常、异常类型名字等同于变量名
<语句块2>
try:
num=int(input("请输入一个整数:"))
print(num**2)
except NameError:
print("输入的不是整数")
#异常处理的高级使用
try:
<语句块1>
except:
<语句块2>
else: #else对应的语句块在不发生异常时执行
<语句块3>
finally: #finally对应的语句块一定执行
<语句块4>
实例:身体质量指数BMI
程序的循环结构
遍历循环
range()函数产生数字序列
range(M,N,K) M起点,N-1终点,K步长
无限循环
循环控制保留字
循环的高级使用
for <变量> in <遍历结构> :
<语句块1>
else:
<语句块2>
while <条件>:
<语句块1>
else:
<语句块2>
- 当循环没有被break语句退出时,执行else语句块
- else语句块作为”正常“完成循环的奖励
- 这里else的用法和异常处理中else用法相似
实例:圆周率的计算
蒙特卡罗方法:
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=(x**2+y**2)**0.5
if dist<=1.0:
hits+=1
pi=4*(hits/darts)
print("圆周率值时:{}".format(pi))
print("运行时间时:{:.5f}s".format(perf_counter()-start))
公式法:
pi = 0
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))
random库简介
- 伪随机数:采用梅森旋转算法生成的(伪)随机序列中元素
- random库主要用于生成随机数
- 基本随机数函数:seed(), random()
- 扩展随机数函数:randint(), getrandbits(), uniform(), randrange(), choice(), shuffle()
函数 | 描述 |
---|---|
seed(a=None) | 初始化给定的随机数种子,默认为当前系统时间 >>>random.seed(10)#产生种子10对应的序列 |
random() | 生成一个[0.0, 1.0]之间的随机小数 >>>random.random() |
randint(a,b) | 生成一个[a,b]之间的整数 |
randrange(m,n[,k]) | 生成一个[m,n)之间以k为步长的随机整数 >>>random.randrange(10,100,10) 80 |
getrandbits(k) | 生成一个k比特长的随机整数 |
uniform(a,b) | 生成一个[a,b]之间的随机小数 |
choice(seq) | 从序列seq中随机选择一个元素 |
shuffle(seq) | 将序列seq中元素随机排列,返回打乱后的序列 |