python语言程序设计(MOOC 嵩天)第四章 学习笔记(0211)
第四章 程序的控制结构
前情回顾
python基本语法元素
缩进、注释、命名、变量、保留字
数据类型、字符串、整数、浮点数、列表
赋值语句、分支语句、函数
input()、print()、eval()及print格式化
python基本图形绘制
turtle绘图体系、import用法
pen、circle、turtle的相关函数
循环语句、for in range
基本数据类型
数据类型:整数<<浮点数<<复数
数据类型运算操作符、运算函数
字符串类型的表示、索引、切片
字符串操作符、处理函数、处理办法、format格式化
time库:time()、strftime()、strptime()、sleep()
第四章 程序的控制结构
4.1 程序的分支结构
4.1.1 单分支结构
if <条件>:
<语句>
4.1.2 二分支结构
if <条件>:
<语句1>
else:
<语句2>
注意–紧凑形式:<表达式1> if <条件> else <表达式2>
紧凑形式中使用表达式,而非带赋值过程的语句
4.1.3 多分支结构
注意:①多条件间的包含关系
②变量取值范围的覆盖
4.1.4 条件判断与组合
and or not
< > <= >= == !=
4.1.5 程序的异常处理
解决办法:
try:
<语句块1>
except<异常类型>:
<语句块2>
异常处理的高级使用:(增加程序的鲁棒性)
try:
<语句块1>
except:
<语句块2> # 语句块2在发生异常时执行
else:
<语句块3> # 语句块3在不发生异常时执行(奖励性)
finally:
<语句块4> # 对应语句块4一定执行
4.2 身体质量指数BMI
同时从用户获得两个输入
a,b=eval(input(“请输入A和B【使用逗号隔开】”))
注意:多分支的条件交叉覆盖
4.3 程序的循环结构
4.3.1 遍历循环
for <循环变量> in <循环结构> :
<语句块>
①计数循环(N次)
for i in range (N)
分别设 i = 0~N-1 时执行语句
注意:range (m,n,k) 即 m~n-1, 以k为步长
②字符串遍历循环
for c in s
#将s中的每个字符按照顺序赋值给c,然后执行语句
③列表遍历循环
for item in [‘ABC’,123,666]
④文件遍历循环
for line in fi
#fi 为文件标识符
#遍历整个文件的每一行
4.3.2 无限循环
即由条件控制的循环运行方式,满足条件则无限执行
while <条件>:
<语句块>
4.3.3 循环控制保留字
break:跳出结束当前整个循环,并执行后续语句
continue:跳出结束当前一次循环,继续执行后续次数的循环
#(一个break只能跳出一层循环)
s="PYTHON" while s != "": for c in s: if c == T: break print(c,end="") s=s[:-1]
最外循环为while s != “” 即字符串s不为空
字符串s每进行一次while循环,去掉s最末端的字符
while.1-for.1 :c=P,c!=P,print(c)=> P
while.1-for.2 :c=H,c!=P,print(c)=> Y
while.1-for.3 :c=T,c!=P,break,第一次while循环结束
s=s[:-1] => s=“PYTHO”
while.2-for.1 :c=P,c!=P,print(c)=> P
while.2-for.2 :c=H,c!=P,print(c)=> Y
while.2-for.3 :c=T,c!=P,break,第二次while循环结束
s=s[:-1] => s=“PYTH”
while.3-for.1 :c=P,c!=P,print(c)=> P
while.3-for.2 :c=H,c!=P,print(c)=> Y
while.3-for.3 :c=T,c!=P,break,第三次while循环结束
s=s[:-1] => s=“PYT”
while.4-for.1 :c=P,c!=P,print(c)=> P
while.4-for.2 :c=H,c!=P,print(c)=> Y
while.4-for.3 :c=T,c!=P,break,第四次while循环结束
s=s[:-1] => s=“PY”
while.5-for.1 :c=P,c!=P,print(c)=> P
while.5-for.2 :c=H,c!=P,print(c)=> Y
第五次while循环结束
s=s[:-1] => s=“P”
while.6-for.1 :c=P,c!=P,print(c)=> P
第六次while循环结束
s=s[:-1] => s=""
while循环条件不满足,程序结束
4.3.4 循环的高级用法
for/while ~:
<语句块>
else:
<语句块>
#当循环没有被break跳出时,执行完for/while循环后
#执行else语句,可以理解为正确循环的奖励
4.4 random库的使用
#random是使用随机数的python标准库
#伪随机数、梅森螺旋算法
4.4.1 基本随机数函数
#随机数种子,唯一确定了随机序列
random.seed(a) #选出a对应的随机序列
random.random() #产生一个0.0~1.0之间的随机数
#不给出种子,直接给出随机数,则程序无法复现
4.4.2 扩展随机数函数
①randint(a,b) >>> 产生一个[a,b]之间的随机整数
②randrange(m,n[,k]) >>> [m,n)之间步长为k的随机整数
③getrandbits(k) >>> 产生一个k比特长的随机整数
④uniform(a,b) >>> 产生一个[a,b]之间的随机小数
⑤choice(seq) >>> 序列seq中随机抽一个元素///seq可以为列表
⑥shuffle(seq) >>> 将序列seq中元素随机排列,返回打乱的序列
4.5 圆周率的计算
4.5.1 公式法
#CalPiV1.py 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))
4.5.2 蒙特卡罗法(撒点法)
#CalPiV2.py from random import random from time import perf_counter DARTS = 1000*1000 hits = 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))
- 点赞
- 收藏
- 分享
- 文章举报
- python语言程序设计(MOOC 嵩天)第四章 程序整理(0213)
- python语言程序设计基础(嵩天)-学习笔记(第二章 第二部分)
- Python语言程序设计-学习笔记4:Python编程之数据类型
- Python语言程序设计-学习笔记3:Python编程之实例解析
- C程序设计语言(K&R)第四章学习笔记
- Python(MOOC学习笔记) ——python语言介绍概览
- python语言程序设计基础-学习笔记(第一章 程序设计基本方法)
- Python语言程序设计-学习笔记1:简介及目录
- 单元周测1 - MOOC-Python语言程序设计-嵩天
- Python语言程序设计-学习笔记2:Python编程之基本方法
- Python语言学习笔记
- python学习笔记之语言、调试、语法、变量、表达式
- Python语言学习笔记之闭包
- C程序设计语言学习笔记(3)
- C程序设计语言(K&R)学习笔记--8.结构体
- Java语言程序设计 【基础篇】 【学习笔记】
- 《JavaScript 语言精粹》 学习笔记 —— 第四章 函数
- C程序设计语言——第2章学习笔记
- C_PlusPlus学习笔记 - 4_C++程序结构 (C++语言程序设计【第三版】 郑莉等,清华大学出版社)
- [学习笔记—Objective-C]《Objective-C 程序设计 第6版》第四章 数据类型和表达式 课后练习题 4-10