目录

1. 程序的分支结构

1.1 单分支结构

1.2 二分支结构

1.3 多分支结构

1.4 条件判断及组合

1.4.1 条件判断

1.4.2 条件组合

2. BMI计算实例

3. 程序的循环结构

3.1 概述

3.2 遍历循环

3.3 条件循环

3.4 循环控制保留字

3.5 循环的扩展用法

4. random库的使用

4.1 random库基本介绍

4.2 基本随机数函数

4.3 扩展随机数函数

5. 圆周率计算实例

5.1 蒙特卡罗方法

5.2 计算实例

5.2.1 公式法

5.2.2 蒙特卡洛法

6. 程序的异常处理

6.1 异常现象

6.2 异常处理

6.3 异常处理的高级用法

6.4 异常处理的使用


1. 程序的分支结构

1.1 单分支结构

单分支结构语法格式如下,

说明:语句块中语句通过与if所在行形成缩进表示包含关系

1.2 二分支结构

二分支结构语法格式如下,

说明1:二分支结构有一种简洁方式,类似C语言中的"?  :"三目运算符,格式如下,

需要注意的是,在紧凑形式中,if - else 下的是表达式而不是语句,紧凑形式是不支持语句形式的

1.3 多分支结构

多分支结构语法格式如下,

说明:else子句是可选的

1.4 条件判断及组合

1.4.1 条件判断

if语句中条件部分可以使用任何能够产生True或False的语句或函数,形成判断条件最常见的方式是采用关系操作符,Python共有6个关系操作符,

说明1:Python中关系操作符可以接连使用,

tips:在C语言中,这种语法是非法的~

说明2:字符或字符串也可以用于条件比较,字符串比较本质上是字符串对应Unicode编码的比较

1.4.2 条件组合

Python中有3个保留字用于实现条件组合,

说明:使用条件组合保留字,可以修改上节的示例如下,

2. BMI计算实例

说明1:一次获取多个输入

实例中通过input + eval + 同步赋值一次获取了2个输入,需要注意,使用eval去除input输入最外侧的一对引号之后,语法上要符合同步赋值的要求;这就是提示中要求以逗号分隔输入的原因

e.g.

输入必须带有逗号分隔,否则eval函数去掉双引号之后就会是语法错误,相当于

a, b = 1 2

说明2:分支结构的设计中,要注意多分支条件之间的覆盖,即注意重复与遗漏的问题

3. 程序的循环结构

3.1 概述

① 根据循环执行次数的确定性,循环可以分为确定次数循环和非确定次数循环

② 确定次数循环指循环体对循环次数有明确的定义,这类循环在Python中被称为遍历循环,使用for语句实现

③ 非确定次数循环指不确定循环体可能的执行次数,而是通过条件判断是否继续执行循环体,使用while语句实现

3.2 遍历循环

遍历循环基本使用方法如下,

说明1:for语句的循环体执行次数由遍历结构中的元素个数决定

说明2:遍历循环可以理解为从遍历结构中逐一取出元素,放置在循环变量中,然后对于所提取的每个元素执行一次循环体

说明3:遍历循环常用方式

① 计数循环

遍历由range函数产生的数字序列,产生循环

tips:扩展形式为,

for i in range(M, N, K):

<语句块>

② 字符串遍历循环

s是字符串,遍历字符串中的每个字符,产生循环

③ 列表遍历循环

ls是一个列表,遍历其中的每个元素,产生循环

tips:对元组、字典等结构均可遍历

④ 文件遍历循环

fi是一个文件标识符,遍历其中的每一行,产生循环

3.3 条件循环

条件循环基本使用方法如下,

说明:条件循环反复执行语句块,直到条件不满足为止

3.4 循环控制保留字

循环结构有2个保留字:break和continue,用法如下,

① break跳出并结束当前整个循环,执行循环后的语句(break仅能跳出最内层循环)

② continue结束当次循环,继续执行后续次数循环

③ break和continue可以与for和while循环搭配使用

tips:Python中break & continue的语义与C语言相同

break & continue使用示例如下,

3.5 循环的扩展用法

for和while循环均支持带有else子句的扩展用法

说明:循环中else子句的执行时机

else子句只在一种条件下执行,即循环正常遍历了所有内容或由于条件不成立而结束循环,没有因为break或return而退出;continue保留字对else子句没有影响

4. random库的使用

4.1 random库基本介绍

① random库是使用随机数的Python标准库

② random库主要用于产生各种分布的伪随机数序列

③ random库采用梅森旋转算法产生伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用

④ random库包括两类函数,常用共8个

4.2 基本随机数函数

说明1:随机数种子

① 随机序列由随机数种子确定,只要随机数种子相同,生成的随机序列就相同

② 初始化随机数种子的好处是可以再现随机数序列及基于该序列的程序运行结果,而如果默认使用当前时间作为随机数种子,由于当前时间精确到微秒,随机数序列很难再现

4.3 扩展随机数函数

6个扩展的随机数函数都是基于最基本的random函数扩展而来

注意:shuffle函数会修改原列表,而不是返回副本

5. 圆周率计算实例

5.1 蒙特卡罗方法

说明1:蒙特卡罗方法概述

蒙特卡罗方法也称为统计模拟方法,是二十世纪四十年代中期由于电子计算机的发明而被提出的一种以概率统计理论为指导的一类数值计算方法,是一种使用随机数(或更常见的伪随机数)来解决计算问题的方法

蒙特卡罗方法在金融工程学、宏观经济学、计算物理学(e.g. 粒子运输计算、量子热力学计算、空气动力学计算)等领域应用广泛

说明2:蒙特卡罗方法计算圆周率

向单位正方形和圆结构随机撒点,通过计算每个点到圆心的距离判断该点在圆内还是圆外,用圆内的点数除以总数就是π/4的值

随机点数量越大,越充分覆盖整个图形,计算得到的π值越精确

5.2 计算实例

5.2.1 公式法

5.2.2 蒙特卡洛法

tips:使用蒙特卡洛方法还是很耗时的

说明1:理解方法思维

数学思维:找到公式,利用公式求解

计算思维:抽象一种过程,用计算机自动化求解

说明2:数学思维和计算思维谁更精确

有精确公式当然是数学思维精确,但是近似公式却不一定胜过计算方法

6. 程序的异常处理

6.1 异常现象

程序要求用户输入整数,但是用户输入"abc",eval函数会去掉双引号,就变成变量使用,而abc变量是没有定义过的

Python异常信息包含如下内容,

说明:Python异常信息中最重要的部分是异常类型,他表明发生异常的原因,也是程序处理异常的依据

6.2 异常处理

异常处理基本语法结构如下,

说明1:except执行时机

语句块1是正常执行的程序内容,当发生异常时执行except保留字后面的语句块

说明2:捕获的异常类型

如果except保留字后指定了异常类型,则属于他的语句块只处理这种类型的异常;如果没有指定异常类型,则可以处理所有异常,所以异常处理可构成类似if-elif-else的结构

try:<语句块1>
except <异常类型1>:<语句块2>
except <异常类型2>:<语句块3>
except:<语句块4>

tips:异常类型及其名字由Python预定义

说明3:异常和错误

① 异常和错误都可能引起程序执行错误而退出,但是二者并不相同

② 对于可预见的例外情况称为异常(checked exception),异常发生后经过妥善处理,程序可以继续执行

e.g. 程序期望获得数字输入却得到其他字符输入、打开一个不存在的文件

③ 因为程序编码逻辑产生的不可预见的例外情况称为错误(unchecked exception),错误发生后程序无法恢复运行,程序本不该处理这类例外

e.g. 对于一个包含5个字符的字符串,程序去索引其中的第6个字符

6.3 异常处理的高级用法

异常处理中可以扩充else和finally子句,语法如下,

说明1:else子句执行时机

当try中的语句块1正常执行结束且没有发生异常时,else中的语句块3执行

可以看作是对try语句块正常执行后的一种追加处理

说明2:finally子句执行时机

无论try中的语句块1是否发生异常,语句块4都会执行

6.4 异常处理的使用

① 不建议编写程序时过度依赖try-except异常处理机制

② try-except一般只用来检测极少发生的情况,例如用户输入的合法性或文件打开是否成功等

Python程序设计语言基础04:程序的控制结构相关推荐

  1. Python程序设计语言基础01:Python基本语法元素

    目录 1. 编译和解释 1.1 编译 1.2 解释 2. 程序的基本编写方法IPO 2.1 含义 2.2 输入 2.3 输出 2.4 处理 3. 使用编程解决问题 3.1 问题的计算部分 3.2 编程 ...

  2. Python程序设计语言基础05:函数和代码复用

    目录 1. 函数的定义与使用 1.1 函数的理解和定义 1.1.1 函数的理解 1.1.2 函数的定义 1.2 函数的使用及调用过程 1.3 函数的参数传递 1.3.1 无参数传递 1.3.2 可选参 ...

  3. Python程序设计语言基础03:基本数据类型

    目录 1. 数字类型 1.1 整数类型 1.1.1 概述 1.1.2 四种进制 1.2 浮点数类型 1.2.1 概述 1.2.2 浮点数表示法 1.2.3 浮点数精度 1.3 复数类型 2. 数字类型 ...

  4. Python程序设计语言基础06(完):组合数据类型

    目录 1. 组合数据类型概述 2. 集合类型及操作 2.1 集合类型定义 2.1.1 集合类型概念 2.1.2 集合类型定义 2.2 集合操作符 2.3 集合处理方法 2.4 集合类型应用场景 2. ...

  5. Java程序设计语言基础04:数组

    目录 1. 数组基础 1.1 创建数组 1.2 使用数组 2. 数组的"名"与"实" 2.1 数组的"名" 2.2 数组的"实&q ...

  6. Python程序设计语言基础02:Python基本图形绘制

    目录 1. 不同编程语言的适用对象 2. 蟒蛇绘制实例 3. 库或类的引用 3.1 Python计算生态 3.2 库引入与import语法 3.2.1 引入库整体 3.2.2 引入库函数 4. tur ...

  7. Python程序设计(13)-----程序设计方法学

    复习之前学过的内容 Python程序设计(6)-----基本数据类型 Python程序设计(7)-----字符串类型及其操作 Python程序设计(8)-----程序的控制结构 Python程序设计( ...

  8. C#面向对象程序设计课程实验一:实验名称:C#语言基础、程序流程控制

    C#面向对象程序设计课程实验一:实验名称:C#语言基础.程序流程控制 实验内容:C#语言基础.程序流程控制 一. 实验目的 二.实验环境 三.实验内容 四.实验总结 实验内容:C#语言基础.程序流程控 ...

  9. python程序设计与基础教程第六章上机实验_《Python程序设计与算法基础教程》教学大纲.doc...

    PAGE 1/ NUMPAGES 2 作者:江红.余青松 定价:59元 ISBN:9787302466833 <算法与程序设计>课程教学大纲 Programming and algorit ...

最新文章

  1. 【zt】我所经历的ERP项目的失败
  2. Android常用代码(类似工具类吧)
  3. linux搜索文件为1kb,Linux常用命令
  4. 最新综述:作为体现具体化自然语言环境的文本世界
  5. [翻译] GoogleMaterialDesignIcons
  6. 人工智障学习笔记——机器学习(3)决策树
  7. Neural Networks for Machine Learning by Geoffrey Hinton (1~2)
  8. 基于权重的节点驱逐 - Oracle RAC 12.2 新特性
  9. 量化感知训练_一文速览EMNLP 2020中的Transformer量化论文
  10. PHP面向对象之方法重写
  11. 大智慧加密指标源码恢复,指标破解工具
  12. 《电磁学》学习笔记4——磁场高斯定理、安培环路定理、电动势
  13. 计算机两个活动分区,硬盘无法设置活动分区,硬盘只能有一个活动分区吗
  14. 【暑期每日一题】洛谷 P5708 【深基2.习2】三角形面积
  15. 一直在寻找:我亲爱的朋友。
  16. 【转】最落魄的日子你是怎样熬过来的?
  17. Python输入身高体重并计算BMI
  18. 计算机数值模拟软件有哪些,数值模拟软件介绍及使用.ppt
  19. springmvc页面跳转错误404/找不到页面/拒绝访问
  20. PayPal设置收款习惯设定

热门文章

  1. php的require 失败,PHP在require_once上失败
  2. 用友u8 12.1服务器硬件要求,用友U8-12.1安装操作手册(服务器)
  3. 计算机信息工程专业985,信息工程学院
  4. oracle optimizermode,Oracle OPTIMIZER_MODE参数
  5. 电梯调度 matlab,数学建模电梯调度问题.pdf
  6. ZooKeeper使用get命令无法获取节点版本信息
  7. 决策树可视化案例python_Python决策树demo可视化
  8. python超级关系_不可阻挡的超级语言--python
  9. java break 在if 中使用_Java | 使用JNA在Java中实现cls(cmd清屏)功能
  10. java time 赋予时间_java.time.OffsetTime