4.1 程序的分支结构
单分支结构:根据判断条件来选择不同向前路径的运行方式
二分支结构:
紧凑形式:<表达式1> if <条件> else <表达式2>
注意紧凑形式中不能赋值,只能是表达式
多分支结构:
条件判断:
操作符
保留字:and、or、not
异常处理:
异常处理相关机制:
- try和except:
1.要执行的程序放在try中的语句块1中,出现异常执行except后的语句块2,不出现异常执行语句块1,然后结束。
2.异常类型:异常类型的名称是系统预定义好的
- 异常处理的高级方法:try、except、else、finally
理解:首先执行一部分语句块1的代码,如果不发生异常,则执行完语句块1后奖励机制产生,去执行语句块3,最后执行语句块4;若发生异常,则执行语句块2,然后执行语句块4
4.2 实例:身体质量指数BMI
获得多个输入的方法:a,b,c = eval(input())
由于输入函数返回的都是字符串,所以用eval去掉双引号,然后赋值给对应的变量。输入的数据用逗号隔开
4.3 程序的循环结构
遍历循环: for…in…
- 遍历循环的定义
- 遍历循环的应用:
-
计数循环:
-
字符串遍历循环:
-
列表遍历循环:
-
文件遍历循环:
-
无线循环:
条件成立,语句块被执行,执行后再次判断条件,若还是成立,在执行语句块——反复执行语句块,知道条件不满足时结束
循环控制保留字:
-
break 跳出并结束当前对应的循环,即打破当前循环
-
continue:结束当次循环,即并不打破当前循环,而是打破当次循环,不执行后续代码块,接着执行下一次循环。
当次循环体执行时遇到continue保留字,当次循环结束,后续语句不被执行。再接着执行下一次循环
**循环的高级用法:**循环+else
注意:与循环部分搭配的else不是分支,而是与异常处理的else相似,是种奖励机制,没有遇到break时执行
4.4 Random库
计算机产生的是伪随机数,采用梅森旋转算法生成伪随机序列。
- 基本随机函数:seed(),random()
- 扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle()
基本随机数函数:
- 随机数种子:只要种子相同,产生的随机序列中的每一个数/数之间的关系都是确定的
random.seed()/random.random
- 注意:如果一开始不用random.seed()初始化种子,直接调用random.random(),则默认初始种子是第一调用random.random所对应的系统时间
- 为何要seed()来给定种子:种子相同,产生的随机数也相同,可以复现程序
扩展随机数函数:
总结:
randonm.sedd()
产生种子
random.random()
生成0~1间的小数
random.uniform(a,b)
生成a~b间的小数
random.randint(a,b)
生成a~b间的整数
random.randrange(a,b,k)
在a~b间指定步长的整数中选一个
random.choice(seq)
从序列选择一个元素
random.shuffle(seq)
打乱序列