python程序设计第四章_<<python语言程序设计基础>> 复习整理 第四章

第4章 程序的控制结构

4.1 程序的基本结构

/程序由三种结构组成:顺序结构,分支结构和循环结构.

4.1.1 程序流程图

4.1.2 程序的基本结构

/顺序结构是计算机程序的基础.

/程序由三种基本结构组成:顺序结构,分支结构,循环结构.这些结构都还有一个入口和一个出口.

/顺序结构:程序按照线性顺序依次执行的一种运行方式.

/分支结构:程序根据条件而选择不同运行路径的运行方式.

/循环结构:程序根据运行结果,反复向后执行的一种运行方式.

4.1.3 程序的基本结构实例

4.2 程序的分支结构

4.2.1 单分支结构 if

if <条件>:

<语句块>

/Python的关系操作符

操作符

含义

<

小于

<=

小于等于

>=

大于等于

>

大于

==

等于

!=

不等于

pm25 =eval(input("请输入PM2.5的值:"))

if 0<=pm25<35:

print("天气好着呢,出去野去吧!")

if 35<=pm25<75:

print("听我的,在家待着!")

if 75<=pm25:

print("想啥呢?!就在家待着!哪也别去!")

/字符或字符串也可以用于条件比较.字符串比较本质上是字符串对应Unicode编码的大小比较,因此字符串的比较按照字典顺序进行.

/英文大写字符对应的Unicode编码比小写字符小.

4.2.2 二分支结构:if-else语句

if <条件>:

<语句块1>

else:

<语句块2>

/二分支结构还有一种更简洁的表达方式:

<表达式1> if <条件> else <表达式2>

其意义为,if条件成立,则执行<表达式1>,<条件>不成立,执行<表达式2>

pm25 =eval(input("请输入PM2.5的值:"))

print("空气{}污染!".format("存在"if pm25>=75 else "没有"))

4.2.3 多分支结构: if-elif-else语句

if<条件1>:

<语句块1>

elif <条件2>:

<语句块2>

...

else:

<语句块N>

4.3 实例5:身体质量指数BMI

4.4 程序的循环结构

/Python通过for,while等保留字提供遍历循环和无线循环的结构.

4.4.1 遍历循环: for 语句

/Python通过保留字for实现"遍历循环",基本使用方法如下:

for <循环变量> in <遍历结构>:

<语句块>

/遍历结构可以是字符串,文件,组合数据类型或range()函数等.

/遍历循环还有一种扩展模式,使用方法如下:

for <循环变量> in <遍历结构>:

<语句块1>

else:

<语句块2>

/这种遍历循环结构是在for语句正常循环结束后,继续执行else语句,所以,可以在<语句块2>中放置判断循环是否正常结束的语句.

4.4.2 无限循环:while语句

/无限循环操作指导循环各条件不满足才结束,不需要提前确定循环次数.

while <条件>:

<语句块>

/当while条件判断为True时,继续执行<语句块>,如果返回值为False,即结束循环.

/while语句也有使用else的拓展方法:

while <条件>:

<语句块1>

else:

<语句块2>

/while循环正常执行后,会继续执行else下语句块内容.亦可用于判断while语句是否正确执行.

4.4.3 循环保留字:break 和 continue

/break用来跳出最内层for或while,脱离该循环后程序从循环代码后继续执行其余代码.

/continue用来结束单次小循环,继续整个循环环境中下面的循环语句.

/for和while循环中,else下面的语句块只有一种条件下执行,即循环正常遍历了所有内容或由于条件不成立而结束循环,没有因为break或return(函数返回中使用的保留字)而退出.continue对else没有影响.

简单明白人话来说,就是break了就不执行else了,continue了,继续执行else.

4.5 模块2:random库的使用

/###4.5.1 random库概述

/Python内置的random库主要用于产生各种分别的伪随机序列.梅森旋转算法,可用于随机数要求不高的工程应用.

4.5.2 random库解析

/random库的常用函数

函数

描述

seed(a=None)

初始化随机种子,默认值为系统时间

random()

生成一个[0.0,1.0)之间的随机小数(包含0.0,不含1.0)

randint(a,b)

生成一个[a,b]间的整数,包含a,b

getrandbits(k)

生成一个k比特长度的随机整数

randrange(start,stop[,step])

生成一个[start,stop)之间,以step为步长的随机整数.

uniform(a,b)

生成一个[a,b]之间的随机小数

choice(seq)

从序列类型中随机返回一个元素

shuffle(seq)

将序列类型中的元素随机打乱,然后返回打乱后的序列

sample(pop,k)

从pop类型中随机选取k个元素,以列表类型返回

4.6 实例6:π的计算

/蒙特卡罗方法求π

import random

import math

import time

darts = 99999

hits = 0.0

now=time.perf_counter()

for i in range(1,darts+1):

x,y=random.random(),random.random()

dist=math.sqrt(x**2+y**2)

if dist <= 1.0:

hits +=1

t=time.perf_counter()-now

pi = 4*(hits/darts)

print("π的值是{}".format(pi))

print("运行时间是{:.2f}s".format(t))

#运行结果:

π的值是3.1420314203142032

运行时间是0.12s

4.7 程序异常处理

4.7.1 异常处理: try-except语句

try:

<语句块1>

except<异常类型>:

<语句块2>

4.7.2 异常的高级用法

/try-except语句可以支持多个except语句

try:

<语句块1>

except <异常类型1>:

<语句块2>

...

except<异常类型N>:

<语句块N+1>

except:

<语句块N+2>

/最有一个except之前的except后跟具体<异常类型>,最后一个except不跟具体<异常类型>,接受其余所有的异常类型.

/除了try和except保留字外,异常语句还可以与else和finally保留字配合使用,语法格式如下:

try:

<语句块1>

except<异常类型1>:

<语句块2>

else:

<语句块3>

finally:

<语句块4>

/此处的else语句与for循环和while循环中的else一样,当try中的语句块1正常执行结束并没有发生异常时,else中的语句块3执行,可以看作是对try语句块正常执行后的一种追加处理.finally语句块则不同,无论try中语句块1是否发生异常,语句块4都会执行,可以将程序执行语句块1的一些收尾工作放在这里,例如,关闭,打开文件等.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值