news 2026/2/5 20:21:56

Python语言编程导论第四章 流程控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python语言编程导论第四章 流程控制
内容提要

概述

条件语句

循环语句

跳转语句

综合实例

一、概述

之前编写的程序都是顺序结构的,即依次执行程序中的每条语句。 但实际的程序并非如此简单,经常要用到条件判断或反复执行某一个程序段,这就要用到条件语句和循环语句。 本章介绍条件语句、循环语句及跳转语句。

二、条件语句

条件语句能够改变Python程序的执行流程,是执行这个代码块还是另一个代码块。 凡是需要判断来确定下一步如何执行的程序都要使用条件语句。

1、if/else语句

(1)单分支 格式: if(表达式): 语句序列 功能:如果条件表达式的值为真,则执行后面的语句序列。

例4-1:判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”。

(2)双分支

格式: if(表达式): 语句序列1 else: 语句序列2 功能:如果“条件表达式”的判断结果为真,则执行语句序列1;否则,执行语句序列2。

例4-2:判断用户的输入,如果输入的数值大于0,则在屏幕上显示“正数”;否则在屏幕上显示“不是正数”。

2、if…elif…else语句

if/elif语句是if语句的扩展版本,它包含多个条件,用于作出复杂的决策。

例4-3:假设航空公司提供了儿童优惠票价:不超过2岁的儿童免票;2-13岁的儿童打折;13岁及以上儿童与成人同价。

3、if语句嵌套

if 语句内还可以使用if语句,这样就构成了if语句的嵌套。

格式: if(表达式1): if(表达式2):语句序列1 elif(表达式3):语句序列2 … else:语句序列3 elif(表达式n): … else: …

例4-4 输入三个整数,输出最大数

4、条件表达式

Python也有类似于C++的条件表达式,其格式为: 表达式1 if 表达式2 else 表达式3

功能:先计算表达式2的值,如果其值为真,则表达式1的值就是整个表达式的值;否则表达式3的值就是整个表达式的值。

例4-5:求两个数a和b中最大值

三、循环语句

循环用于重复地执行代码块。 Python中有两种主要的循环:for循环和while循环。 for循环通常比while循环更容易使用,也不那么容易出错,但没有while循环灵活。

1、for循环

格式: for 变量 in 集合: … 功能:每次从集合中取出一个值,并把值赋给变量。

集合可以是元组、列表、字典等数据结构。

说明: for循环通常与range()函数一起使用,range()函数返回一个列表,for循环遍历列表中的元素。 Range()函数格式:range(start,stop[,step]),参数start表示列表开始值,默认为0;参数stop表示列表结束值,不能缺省,循环到stop-1停止;参数step表示步长,默认值为1。

例4-6:for循环示例

例4-7:求1+2+3+…+100

.

2、while循环

格式: while 条件表达式: 语句序列

功能:当条件表达式为真时,依次执行while中的语句,直到循环表达式的值为假。

例4-8:求1+2+3+…+100

3、for循环和while循环比较

一般来说,固定次数的循环问题使用for循环和while循环都可以解决,而循环次数不固定的循环问题只能使用while循环解决。

例4-9:分别使用for和while循环计算n!

例4-10:计算已知个数数字的总和

例4-11:计算未知个数数字的总和

5、循环嵌套

四、跳转语句

与C、C++类似,在Python中除了提供顺序执行和选择控制、循环控制语句外,还提供了一类跳转语句。这类语句的总体功能是中断当前某段程序的执行,并跳转到程序的其他位置继续执行。 Python的跳转语句有:break语句和continue语句。

跳转语句的作用及区别:

break语句的作用是:结束当前正在执行的循环(for、while),转而执行这些结构后面的语句。 。 continue语句的作用是:结束当前正在执行的这一次循环(for、while),接着执行下一次循环。即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。

continue语句和break语句的区别是:continue语句只结束本次循环,而不是终止整个循环的执行。而break语句则是结束整个循环,不再进行条件判断。

例4-13:计算未知个数数字的总和(利用break语句)

例4-14:输出1~100之间的不能被7整除的数。

五、综合实例

1、求任意非负数的平方根。没有精确算法,常用的近似算法有: 穷举法 二分法 牛顿—拉夫逊算法。

穷举法:

取较小的步长生成猜测值(顺序地); 检查是否足够接近结果。 反复执行上述步骤。

在穷举法中,步长可以取任意小数值,但是: 如果步长太小了,程序执行会花较长时间 如果步长太大了,可能会跳过最近似的答案 还有更有效的方法。

二分法:

根据数学定义,x的平方根位于0—x之间。 尽管在穷举法中,我们从0开始进行猜测,但实际上可以取这个范围的中间值。

如果幸运,这个答案即最近似的结果。

如果猜测值不足够近似,太大或太小怎么办? 如果g**2>x,则g太大,现在应查找:

如果新的g,例如g**2<x,则g太小了,应查找:

每次减少值的范围的一半。

关于二分法算法的说明:

二分查找算法从根本上减少了计算时间; 二分查找算法必须用于有序的数据。

牛顿—拉夫逊算法:

通常,求一个变量多项式的根的近似算法为:

求r使得p(r)=0 例如,求24的平方根,即求p(x)=x2-24的根,则牛顿近似公式为:

具体到本例,近似公式为:g-(g2-24)/2g

2、编写猜秘密数的程序

由用户想一个0—100之间的整数(包括0,不包括100),由计算机来猜。由用户给一个输入,是低了还是高了,使用二分查找算法,计算机将猜到用户的秘密数。

执行过程(设用户想的秘密数是83)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/2/2 13:02:42

c/c++指针回填(Pointer Backpatching)

指针回填&#xff08;Pointer Backpatching&#xff09;是一个常见的概念和技术。 主要应用场景&#xff1a; 1. 编译原理中的回填技术 在编译器设计中&#xff0c;当生成中间代码或目标代码时&#xff0c;经常会遇到跳转地址未知的情况&#xff1a; // 例如&#xff1a;if语句…

作者头像 李华
网站建设 2026/2/2 23:44:36

从C宏到Simulink库:构建可复用的嵌入式参数ID生成器

从C宏到Simulink库&#xff1a;构建可复用的嵌入式参数ID生成器 在上一篇文章中&#xff0c;我们探讨了如何使用位运算在STM32中高效管理EEPROM参数。核心是一个巧妙的C宏MK_ID&#xff0c;它将多个信息打包成一个32位的唯一标识符。这种方法在纯代码开发中非常强大&#xff0c…

作者头像 李华
网站建设 2026/2/3 0:15:52

GPT-OSS-20B性能实测:3.6B活跃参数如何实现低延迟AI推理

GPT-OSS-20B性能实测&#xff1a;3.6B活跃参数如何实现低延迟AI推理 在如今人人都想把大模型装进笔记本、手机甚至树莓派的时代&#xff0c;一个现实问题摆在面前&#xff1a;我们真的需要每次都调动上百亿参数来回答“今天天气怎么样”这种问题吗&#xff1f;显然不需要。正因…

作者头像 李华
网站建设 2026/2/5 13:41:28

LobeChat能否集成Algolia搜索?对话内容快速定位

LobeChat 能否集成 Algolia 搜索&#xff1f;让对话内容“可被记住” 在智能助手日益成为数字生活核心入口的今天&#xff0c;一个现实问题逐渐浮现&#xff1a;我们和 AI 的对话越来越多&#xff0c;但越重要的信息反而越难找回。 你有没有过这样的经历——上周问过的部署方…

作者头像 李华
网站建设 2026/2/5 1:33:07

PostIn从基础到实践(11) - 全方位的接口自动化测试确保接口质量

PostIn是一款开源免费的接口管理工具&#xff0c;支持免费私有化部署&#xff0c;一键安装零配置&#xff0c;页面设计简洁易用。本文将介绍如何编写接口用例并进行全面测试。1、接口用例PostIn支持如下几种测试用例。接口单元用例&#xff1a;针对单个接口的输入输出进行验证&…

作者头像 李华
网站建设 2026/2/3 0:33:18

还在用ArcGIS+CAD+PS?国产GIS平台一站式实现跨行业海量数据管理、智能分析与多端协同

在地理信息数据日益成为核心生产资料的今天&#xff0c;无论是航拍测绘、规划设计、国土空间&#xff0c;还是林业水利、交通运输、矿产资源、地质灾害防治等行业&#xff0c;都面临着多源数据整合难、处理流程繁琐、协同效率低下等挑战。Bigemap Pro 作为一款专业级地理信息综…

作者头像 李华