1.程序结构

计算机在解决问题时,分别是顺序执行所有语句、选择执行部分语句、循环执行部分语句,分别是:顺序结构、选择结构、循环结构。如下图:

2.选择语句

2.1最简单的if语句

Python使用保留字if来组成选择语句,其格式如下:

if表达式:

代码块

表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,就跳过“代码块”,执行后面语句,如图

注:1.在Python中,当表达式的值为非零的数或者非空的字符串时,if语句也认为是条件成立(即为真值)。

··    2.使用if语句时,如果只有一条语句,那么语句块可以直接写到冒号“:”的右侧。但为了代码可读性不建议这么做。

3.常见错误:

1.if语句后面未加冒号

number= 3

if number == 3 #后面未加冒号,正确的是结尾处添加英文半角的冒号:if number == 3:

print(number)

2.使用if语句时,如果在符合条件时,需要执行多个语句,一定要记得按照逻辑顺序进行代码缩进,否则程序的本意会有变化,但程序不会报错,且bug不容易发现。

代码1:

number = 3

if number == 3:

print(number)

print('这个是5')

代码2:

number = 3

if number == 3:

print(number)

print('这个是5'

2.2.if …… else 语句

Python中提供 if …else 语句来解决两个选择问题,其格式如下:

if表达式:

语句块1else:

语句块2

使用 if …else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行“代码块”;如果值为假,执行else后面的代码块。如图所示:

技巧:

if…else额语句可以使用条件表达式进行简化,如下:

a= 5

if a >0:

b=aelse:

b= -aprint(b)

简化:

a= 5b= a if a > 0 else -aprint(b)

注:1. 在使用else 语句时,else一定不可以单独使用,它必须和保留字if一起搭配使用。

2.程序中使用if…else 语句时,如果出现多个if 语句多余else语句的情况,那么该else语句将会根据确定该else 语句属于哪个if语句。

2.3.if…elif…else语句

在开发程序时遇到多选一的情况,则可以使用if …elif…else语句,具体情况如下:

if表达式1:

语句块1elif表达式2:

语句块2elif表达式3:

语句块3

…else:

语句块n

使用 if …elif…else 语句时,表达式可以是一个单纯的布尔值或者变量,也可以是比较表达式或者逻辑表达式,如果表达式值为真,则执行语句;如果值为假,则跳过该执行语句,进行下一个elif判断,只有表达式全部为假的情况下,执行else后面的代码块。如图所示:

注:1. if 和 elif 都需要判断表达式的真假,而 else 则不需要判断;另外 elif 和 elif 都需要跟 if 一起使用,不能单独使用。

2. 使用if语句时尽量避免遵循以下原则:

(1).当使用布尔类型的变量作为判断条件时,假设布尔类型变量为flag,较为规范格式;if flag: #表示为真

if not flag #表示为假

不符合规范格式:if flag ==True:if flag ==False:

(2).使用 "if 1 == a:" 这样的书写格式可以防止错写成 "if a = 1:"这种形式,从而避免出错

2.4 if 语句的嵌套

前面已经介绍了3种形式的 if 语句,这三种都可以进行相互嵌套:

(1) . 在最简单的if语句中嵌套 if……else语句,形式如下:

if表达式1:

if表达式2:

语句块1

else:

语句块2

(2). 在if……else中嵌套if……else语句,形式如下:

if表达式1:if表达式2:

语句块1else:

语句块2else:if表达式3:

语句块3else:

语句块4

注:if 选择语句可以有多种嵌套方式,开发时可以可以根据自身的需要进行选择合适的嵌套方式,但一定要严格控制好不同级别代码的缩进量。

3.条件表达式

在程序开发过程中,经常会根据表达式的结果,有条件的进行赋值,例如返回最大值:

a = 6b= 3

if a >b:

c=aelse:

c= b

针对以上代码,使用条件表达式进行简化,如下:

a = 6b= 3c= a if a > b else b

4.循环语句

4.1 while 循环

while循环是通过一个条件来控制是否要继续反复执行循环体(循环体是指一组被重复执行的语句)中的语句。

while条件表达式:

循环体

当条件表达式的返回值为真时,则执行循环体中的语句,执行完毕后,重新判断条件表达式的返回值,直到表达式返回的结果为假是退出循环体。

注:在使用while循环语句时,一定不要忘记添加将循环条件改变为Flase的代码,否则,将产生死循环。但开发中也离不开死循环,可根据情况进行编写。

4.2. for循环

for 循环是一个依次重复执行的循环,通常适用于枚举、遍历序列和对象中的元素。语法如下:

for 迭代变量 in可迭代对象:

循环体

迭代变量用于保存读除的值,对象为遍历或迭代的对象,该对象可以是任何有序的序列对象,如字符串,列表,元组等,循环体为一组被重复执行的语句。

for循环语句可以最基本的应用就是进行数值循环和遍历字符串。还可以进行遍历列表、元组、集合和字典。

4.3. 循环嵌套

在Python中,是允许在一个循环体中嵌套另一个循环。

(1). 在while循环中嵌套while循环

while条件表达式1:while条件表达式2:

循环体2

循环体1

(2). 在for 循环中嵌套 for 循环

for 迭代变量1 in对象1:for 迭代变量2 in对象2:

循环体2

循环体1

(3). 在while 循环中嵌套 for 循环

while条件表达式:for 迭代变量 in对象:

循环体2

循环体1

(4). 在 for 循环中嵌套 while 循环

for 迭代变量 in对象:while条件表达式:

循环体2

循环体1

特殊案例:九九乘法表

for i in range(0,10):for j in range(1,i+1):print(str(j) + "*" + str(i) + "=" + str(i * j) +" " ,end = " "

print("")

5.跳转语句

当循环满足一定条件时,程序会一直执行下去,如果需要在中间离开循环,也就是for循环结束重复之前,或者while循环找到结束条件之前,即break语句和continue语句。

5.1 break语句

break可以终止当前循环,包括for循环和while循环在内的所有控制语句。

在while中使用break语句:

while条件表达式1:

执行语句if条件表达式2:break

在for 中使用break语句

for 迭代变量 in对象:if条件表达式:break

while语句使用break for语句中使用break

5.2.continue语句

continue语句的作用没有break语句强大,他只能终止本次循环而提前进入下次循环中。

在while中使用continue语句

while条件表达式1:

执行代码if条件表达式2:continue

在for 中使用continue语句

for 迭代变量 in对象:if条件表达式:continue

while语句使用continue for语句中使用continue

注:break与continue的区别

break语句一般会结合if 语句进行搭配使用,表示在某种条件下,跳出循环。如果使用嵌套循环,break语句将跳出最内层循环。

continue语句一般也会结合if语句进行搭配使用,表示在某种条件下,跳出当前循环的剩下语句,继续进行下一轮循环,如果使用嵌套循环,continue语句将只跳过最内层循环中剩余语句。

6.pass语句

在Python中pass语句表示空语句,它不做任何事情,一般起到站位作用,常用在代码调试等。

#例:

for i in range(1,10): #输出1~10的数不包含10

if i % 2 == 0: #判断是否是偶数

print(i,end="") #在同一行打印偶数

else: #不是偶数

pass #占位符,不做任何事情,直接跳过

#输出结果为:

2 4 6 8

python流程控制语句-Python流程控制语句详解相关推荐

  1. Python异常重试解决方案 Python中异常重试的解决方案详解

    想了解Python中异常重试的解决方案详解的相关内容吗,标点符在本文为您仔细讲解Python异常重试解决方案的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,重试,python ...

  2. python3占位符详解_占位符最新:Python 占位符的使用方法详解_爱安网 LoveAn.com

    关于"占位符"的最新内容 聚合阅读 这篇文章主要介绍了Python 占位符的使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以 ...

  3. 21年最新Python面试题及答案汇总详解(上)

    错过三月找工作的机会,还要错过四月的好时期吗?Python面试你做准备了吗?下面小编整理了一套2021年最新Python常见面试题目,及Python面试题目答案汇总.希望能够帮助到大家. 21年最新P ...

  4. python popen阻塞_对Python subprocess.Popen子进程管道阻塞详解

    问题产生描述 使用子进程处理一个大的日志文件,并对文件进行分析查询,需要等待子进程执行的输出结果,进行下一步处理. 出问题的代码 # 启用子进程执行外部shell命令 def __subprocess ...

  5. python平方数迭代器_对python中的高效迭代器函数详解

    python中内置的库中有个itertools,可以满足我们在编程中绝大多数需要迭代的场合,当然也可以自己造轮子,但是有现成的好用的轮子不妨也学习一下,看哪个用的顺手~ 首先还是要先import一下: ...

  6. python画图三维-对python mayavi三维绘图的实现详解

    网上下载mayavi的官方帮助文档,里面有很多例子,下面的记录都是查看手册后得到的. python的mayavi.mlab库中的绘图函数有很多候选参数,但下文记录并没有过多讨论,本人也是需要用到才查看 ...

  7. python画动图-Python绘制动态水球图过程详解

    先来看看绘制的动态水球图: 没有安装PyEcharts的,先安装PyEcharts: # 安装pyecharts模块,直接安装就是最新的版本pip install pyecharts 安装好PyEch ...

  8. python常用内置模块-Python常用内置模块之xml模块(详解)

    xml即可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言.从结构上,很像HTML超文本标记语言.但他们被设计的目的是不同的,超文本标记语言被设计用来显示 ...

  9. python画简单的图形的代码-Python实现画图软件功能方法详解

    概述 虽然Python的强项在人工智能,数据处理方面,但是对于日常简单的应用,Python也提供了非常友好的支持(如:Tkinter),本文主要一个简单的画图小软件,简述Python在GUI(图形用户 ...

  10. python如何做散点图-matplotlib在python上绘制3D散点图实例详解

    大家可以先参考官方演示文档: 效果图: ''' ============== 3D scatterplot ============== Demonstration of a basic scatte ...

最新文章

  1. C++ 把输出结果写入到文件中
  2. php 连接mysql 错误排查一例
  3. codevs 2606 约数和(分块优化数学公式 )
  4. Redis 学习笔记-NoSQL数据库 常用五大数据类型 Redis配置文件介绍 Redis的发布和订阅 Redis_事务_锁机制_秒杀 Redis应用问题解决 分布式锁
  5. oracle %date 0 10%,“date:~0,10%“是什么意思?
  6. shopxo二次开发:底部导航VS顶部导航 (统一性问题)
  7. 深化美国分布式光伏领域合作 苏美达辉伦向美企供应7兆瓦组件
  8. 在Linux上安装MySql
  9. 特斯拉已在中国建立数据中心
  10. IT项目管理之第5章 项目时间管理习题之案例分析汇总
  11. Typora中插入分页符
  12. 2021年全国居住场所火灾死亡人数、受伤人数、火灾发生原因及造成直接财产损失分析[图]
  13. “超低能,劲搞笑”笑话管理系统 v2.0
  14. Java如何解决模糊查询(数据库SQL语句,报表开发工具)
  15. iOS-class方法和objc_getClass方法
  16. python中len函数返回值为int吗_Python len()函数
  17. window电脑 休眠后无法唤醒 解决办法
  18. 支付系统就该这么设计(万能通用)
  19. CSS教程--CSS字体
  20. 微博社交登录接入出现错误码:21322 重定向地址不匹配——成功解决方法

热门文章

  1. 思科安全:加密流量威胁检测、加密流量威胁和恶意软件检测、识别无线干扰或威胁、Talos 情报源可加强对已知和新型威胁的防御、分布式安全异常检测...
  2. 岭回归与Lasso回归
  3. spark rdd saveAsTextFile保存为文件
  4. nodejs Yarn替代npm的包管理——快速、安全、可靠性高的依赖管理
  5. vue-textarea 自适应高度
  6. 17.抢购(秒杀)业务的技术要点
  7. 使用U函数之后如何去掉index.php
  8. 【HTML】框架集(Framesets)
  9. IOS开发之NSObject协议类方法说明
  10. Jenkins学习四:Jenkins 邮件配置