您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

Python流程控制语句详解

时间:2020-12-15 09:39:02  来源:  作者:

1.程序结构

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

Python流程控制语句详解

 

2.选择语句

2.1最简单的if语句

Python/ target=_blank class=infotextkey>Python使用保留字if来组成选择语句,其格式如下:

if 表达式:
   代码块

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

Python流程控制语句详解

 

注: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 表达式:
    语句块1
else:
    语句块2

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

Python流程控制语句详解

 

技巧:

if…else额语句可以使用条件表达式进行简化,如下:
a = 5
if a > 0:
    b = a
else:
    b = -a
print(b)

简化:
a = 5
b = a if a > 0 else -a
print(b)

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

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

2.3.if…elif…else语句

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

if 表达式1:
    语句块1
elif 表达式2:
    语句块2
elif 表达式3:
    语句块3
…
else:
    语句块n

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

Python流程控制语句详解

 

注: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:
        语句块1
    else:
        语句块2
else:
    if 表达式3:
        语句块3
    else:
        语句块4

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

3.条件表达式

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

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

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

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

4.循环语句

4.1 while 循环

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

while 条件表达式:
    循环体

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

Python流程控制语句详解

 

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

4.2. for循环

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

for 迭代变量 in 可迭代对象:
    循环体

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

Python流程控制语句详解

 

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) +"t" ,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
Python流程控制语句详解

 

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

5.2.continue语句

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

在while中使用continue语句

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

在for 中使用continue语句

for 迭代变量 in 对象:
    if 条件表达式:
        continue
Python流程控制语句详解

 

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


Tags:Python   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...【详细内容】
2022-07-15  Tags: Python  点击:(2)  评论:(0)  加入收藏
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...【详细内容】
2022-07-14  Tags: Python  点击:(3)  评论:(0)  加入收藏
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...【详细内容】
2022-07-11  Tags: Python  点击:(19)  评论:(0)  加入收藏
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...【详细内容】
2022-07-11  Tags: Python  点击:(15)  评论:(0)  加入收藏
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  Tags: Python  点击:(34)  评论:(0)  加入收藏
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...【详细内容】
2022-07-06  Tags: Python  点击:(25)  评论:(0)  加入收藏
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...【详细内容】
2022-07-05  Tags: Python  点击:(27)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  Tags: Python  点击:(19)  评论:(0)  加入收藏
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...【详细内容】
2022-07-04  Tags: Python  点击:(28)  评论:(0)  加入收藏
假设某日我开了一家空调公司,暂且就叫他天强空调安装设备公司吧,假装自己有公司,接了一单大生意,就是给甘肃省的各个高校安装空调(其实这边的气候基本用不到空调,就是假想一下),那么...【详细内容】
2022-07-01  Tags: Python  点击:(33)  评论:(0)  加入收藏
▌简易百科推荐
近几年 Web3 被炒得火热,但是大部分人可能还不清楚什么是 Web3,今天就让w3cschool编程狮小师妹带你了解下 Web3 是什么?与我们熟知的 Web1 和 Web2 又有什么区别呢?web3.0什么是...【详细内容】
2022-07-15  编程狮W3Cschool    Tags:Web3.0   点击:(2)  评论:(0)  加入收藏
1、让我们一起来看下吧,直接上图。 第一眼看到是不是觉得很高逼格,暗黑画风,这很大佬。其实它就是------AidLearning。一个运行在安卓平台的linux系统,而且还包含了许多非常强大...【详细内容】
2022-07-15  IT智能化专栏    Tags:AidLearning   点击:(2)  评论:(0)  加入收藏
真正的大师,永远都怀着一颗学徒的心! 一、项目简介 今天说的这个软件是一款基于Python+vue的自动化运维、完全开源的云管理平台。二、实现功能 基于RBAC权限系统 录像回放 ...【详细内容】
2022-07-14  菜鸟程序猿    Tags:Python   点击:(3)  评论:(0)  加入收藏
前言今天笔者想和大家来聊聊python接口自动化的MySQL数据连接,废话不多说咱们直接进入主题吧。 一、什么是 PyMySQL?PyMySQL是在Python3.x版本中用于连接MySQL服务器的一个库,P...【详细内容】
2022-07-11  测试架构师百里    Tags:python   点击:(19)  评论:(0)  加入收藏
aiohttp什么是 aiohttp?一个异步的 HTTP 客户端\服务端框架,基于 asyncio 的异步模块。可用于实现异步爬虫,更快于 requests 的同步爬虫。安装pip install aiohttpaiohttp 和 r...【详细内容】
2022-07-11  VT漫步    Tags:aiohttp   点击:(15)  评论:(0)  加入收藏
今天我们学习下 Queue 的进阶用法。生产者消费者模型在并发编程中,比如爬虫,有的线程负责爬取数据,有的线程负责对爬取到的数据做处理(清洗、分类和入库)。假如他们是直接交互的,...【详细内容】
2022-07-06  VT漫步    Tags:Python Queue   点击:(34)  评论:(0)  加入收藏
继承:是面向对象编程最重要的特性之一,例如,我们每个人都从祖辈和父母那里继承了一些体貌特征,但每个人却又不同于父母,有自己独有的一些特性。在面向对象中被继承的类是父类或基...【详细内容】
2022-07-06  至尊小狸子    Tags:python   点击:(25)  评论:(0)  加入收藏
点击上方头像关注我,每周上午 09:00准时推送,每月不定期赠送技术书籍。本文1553字,阅读约需4分钟 Hi,大家好,我是CoCo。在上一篇Python自动化测试系列文章:Python自动化测试之P...【详细内容】
2022-07-05  CoCo的软件测试小栈    Tags:Python   点击:(27)  评论:(0)  加入收藏
第一种方式:res = requests.get(url, params=data, headers = headers)第二种方式:res = requests.get(url, data=data, headers = headers)注意:1.url格式入参只支持第一种方...【详细内容】
2022-07-05  独钓寒江雪之IT    Tags:Python request   点击:(19)  评论:(0)  加入收藏
什么是python类的多态python的多态,可以为不同的类实例,或者说不同的数据处理方式,提供统一的接口。用比喻的方式理解python类的多态比如,同一个苹果(统一的接口)在孩子的眼里(类实...【详细内容】
2022-07-04  写小说的程序员    Tags:python类   点击:(28)  评论:(0)  加入收藏
站内最新
站内热门
站内头条