Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Python基础-3 流程控制

Python基础-3 流程控制

作者头像
一只大鸽子
发布于 2022-12-06 01:02:22
发布于 2022-12-06 01:02:22
41400
代码可运行
举报
运行总次数:0
代码可运行

流程控制即控制代码执行的顺序。Python中的流程控制一般通过判断、循环语句实现。

本文思维导图:

一、判断

1.1 if语句

最常用的判断语句是if语句:

例:if语句

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
x = int(input("Please enter an integer: "))

if x < 0:
    x = 0
    print('Negative changed to zero')
elif x == 0:
    print('Zero')
elif x == 1:
    print('Single')
else:
    print('More')

注1:这里if下面的语句有4个空格缩进,说明下面的两行语句是属于if语句的。Python中用缩进表示代码所属级别。

注2:elif即对else if的缩写。

(用户输入一个整数存到变量x中,然后对x进行判断。

如果x小于0,就让给x赋值0,并且使用print输出消息Negative changed to zero;否则,如果x等于0,就输出消息Zero;否则,如果x等于1,输出消息Single;否则,以上都不符合,输出消息More。)

if语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
if 条件:
    命令1
elif 条件:
    命令2
...可以有更多elif...
else:
    命令n


二、循环

2.1 for语句

Python中最常用的循环是for语句。典型用法是用for来遍历一个列表(或任意可迭代对象)

例:使用for语句打印words中单词及其长度。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
words = ['cat', 'window', 'defenestrate']
for w in words:
    print(w, len(w))

for -in语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for x in 可迭代对象:
    语句

2.2 遍历集合

遍历集合时修改集合的内容,会很容易生成错误的结果。因此不能直接进行循环,而是应遍历该集合的副本或创建新的集合:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建一个集合。集合就是一些“键:值”形式的键值对。
users = {'Hans': 'active', 'Éléonore': 'inactive', '景太郎': 'active'}

# 在副本上迭代
for user, status in users.copy().items():
    if status == 'inactive':
        del users[user]

# 或者创建新集合
active_users = {}
for user, status in users.items():
    if status == 'active':
        active_users[user] = status

2.3 range()函数

range可当成是一种不可变序列。 range(start, stop[, step]),range可以传入三个参数,起始值,终止值,步长。其中,start默认值为0,步长默认为1。

range的典型用法就是只指定stop,用于循环指定次数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(5):
    print(i)

range(5)就能循环5次:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
0
1
2
3
4

range()三参数形式start, stop[, step]:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
list(range(0, 10, 3)) #[0, 3, 6, 9]

使用len()和range()可以按索引迭代序列(不推荐)。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i in range(len(a)):
    print(i, a[i])

推荐使用更简洁的enumerate

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a = ['Mary', 'had', 'a', 'little', 'lamb']
for i,x in enumerate(a):
    print(i,x)

2.4 while循环

while循环用于在某些条件下进行循环,条件为假时,循环结束:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
a, b = 0, 1
while a < 10:
    print(a)
    a, b = b, a+b

while语法:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
while 条件为真:
    执行...

2.5 循环中的break,continue语句

break 语句和 C 中的类似,用于跳出最近的 forwhile 循环。

continue 语句也借鉴自 C 语言,表示继续执行循环的下一次迭代。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
for i in range(1, 100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        print(i, " is good")

使用break,会直接跳出所在的for循环

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#例子breakfor i in range(1,100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        break     #会结束所在的for循环
        print(i, " is good")

使用continute会跳过下面的语句,继续下一次循环。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# continue例子
for i in range(1, 100):
    if i % 7 == 0 and i % 5 == 0:
        print(i)
        continue
        print(i, " is good") #会被跳过

2.6 for-else语法(不推荐)

循环结束时执行else,break停止循环时不执行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for- else

for i in range(5):
    if i**1 +i**2 + i**3 > 200:
        print("find ",i)
        break
else:
    print("not find")

#not find

循环结束,没有break,就执行else子句。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# for- else


for i in range(10):
    if i**1 +i**2 + i**3 > 200:
        print("find ",i)
        break
else:
    print("not find")

#find  6

循环被break提前结束,不执行else子句。


三、其它

3.1 pass语句

pass语句什么都不做,通常当做占位符。

比如我们预期将来要写一个函数,可以先使用pass占位,后面再实现实际功能。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def initlog(*args):
    pass   # Remember to implement this!

3.2 match

match语句是Python3.10新特性,用来匹配目标。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def http_error(status):
    match status:
        case 400:
            return "Bad request"
        case 404:
            return "Not found"
        case 418:
            return "I'm a teapot"
        case _:
            return "Something's wrong with the internet"

变量名” _ 被作为 通配符 并必定会匹配成功

除了字面值,match还可以匹配模式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# point is an (x, y) tuple
match point:
    case (0, 0):
        print("Origin")
    case (0, y):
        print(f"Y={y}")
    case (x, 0):
        print(f"X={x}")
    case (x, y):
        print(f"X={x}, Y={y}")
    case _:
        raise ValueError("Not a point")

类形式:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
class Point:
    x: int
    y: int

def where_is(point):
    match point:
        case Point(x=0, y=0):
            print("Origin")
        case Point(x=0, y=y):
            print(f"Y={y}")
        case Point(x=x, y=0):
            print(f"X={x}")
        case Point():
            print("Somewhere else")
        case _:
            print("Not a point")
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-05-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 一只大鸽子 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python基础之:Python中的流程控制
流程控制无非就是if else之类的控制语句,今天我们来看一下Python中的流程控制会有什么不太一样的地方。
程序那些事
2021/03/03
3710
深入 Python 流程控制
可能会有零到多个 elif 部分,else 是可选的。关键字 ‘elif’ 是 ’else if’ 的缩写,这个可以有效地避免过深的缩进。if … elif … elif … 序列用于替代其它语言中的 switch 或 case 语句。 
py3study
2020/01/19
6530
Python2.7自学笔记3——流程控制
一、if语句 >>> x = int(raw_input("Please enter an integer: "))Please enter an integer: 42>>> if x < 0:...     x = 0...     print 'Negative changed to zero'... elif x == 0:...     print 'Zero'... elif x == 1:...     print 'Single'... else:...     print 'More' 二
py3study
2020/01/08
3230
Python3 流程控制语句
注意: 1、每个条件后面要使用冒号(:),表示接下来是满足条件后要执行的语句块 2、使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块 3、在Python中没有switch – case语句 代码示例:
py3study
2020/01/03
5180
一文了解Python流程控制
代码块 是由多行语句组成,:开始。 条件判断语句 If语句 if 条件 : 做事情 else: 做事情 if 条件: 做事情 elif 条件: 做事情 else: 做事情 实验代码 # if 语句 score = 60 students = {"zhangsan":80,"lisi":70,"wangwu":40} if students["wangwu"] >= score: print("及格了") elif students["zhangsan
DevOps云学堂
2019/10/18
2950
三、python基础之条件和循环
计算机又被称作电脑,意指计算机可以像人脑一样,根据周围环境条件(即expession)的变化做出不同的反应(即执行代码)
py3study
2020/01/09
5440
Python黑帽编程2.4 流程控制
Python黑帽编程2.4 流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容。 2.4.1 IF …..ELSE 先上一段代码: #!/usr/bin/python # -*- coding: UTF-8 -*- x=int(input('请输入一个整数:')) if x==0: print '%d ==0' % x elif x<0: print '%d <0' % x else: print '%d >0' % x 这段代码使用if,elif和els
用户1631416
2018/04/11
7120
Python黑帽编程2.4  流程控制
Python基础语法-流程控制
今天讲解Python的流程控制,流程控制也比较简单,小白不想整的很复杂,以免让大家看了有一种望“文”生怯的想法。 程序控制结构 通常的程序设计语言有三种控制结构。 顺序结构 代码从上而下顺序执行。 >>> a = 0 >>> a = a + 1 >>> print(a) 1 分支结构 if cond1: block1 elif cond2: block2 >>> if 1 < 2: ... print('1 less 2') ... ... 1 less 2 >>> p
1846122963
2018/03/09
6970
IF-While-For 轻松掌握Python流程控制语句
If语句允许您检查程序的当前状态,并对该状态作出适当的响应。可以编写一个简单的If语句来检查一个条件,也可以创建一系列复杂的if语句来标识您正在寻找的确切条件。
数据STUDIO
2021/06/24
4520
python学习笔记3—流程控制if、f
True:表示非空的量(比如:string,tuple,list,set,dictonary)所有非零数。
py3study
2020/01/10
5990
Python 3 学习笔记:流程控制
计算机在解决某个具体问题时,主要有三种形式,分别是顺序控制执行所有语句、选择执行部分语句和循环执行部分语句。根据以上三种解决问题的形式,程序设计过程中,也有三种基本结构,分别为顺序结构、选择结构和循环结构。
py3study
2020/01/09
5700
Python3 | 练气期,流程控制语句!
描述:上一章,我们学习了Python3编程中操作运算符及其运算符的优先级,相信各位初学看友边看、边实践的基础下已经初步掌握它了,这一章我们一起学习Python3编程入门中流程控制的相关语法及实践案例,它也是Python编程中最基础且常用的部分,所以说也是需要我们掌握的。
全栈工程师修炼指南
2024/07/29
1360
Python3 | 练气期,流程控制语句!
Swift进阶四——流程控制
我们可以使用函数stride(from:, to:, by:)来跳过不想要的标记(开区间);闭区间也同样适用,使用stride(from:, through:, by:)函数即可。
拉维
2020/12/11
9150
Swift进阶四——流程控制
《Python基础教程》 读书笔记 第五章(下)条件语句
while语句非常灵活。它可以用来在任何条件为真的情况下重复执行一个代码块。一般情况下这样就够用了,但是有些时候还得量体裁衣。比如要为一个集合(序列和其他可迭代对象)的每个元素都执行一个代码块。这个时候可以使用for语句:
Ai学习的老章
2019/04/10
7280
python(二)—选择和循环结构
该文是关于Python选择结构和循环结构的语法介绍。
企鹅号小编
2018/01/02
1.3K0
python(二)—选择和循环结构
Python的循环、判断和各种表达式(长文系列第二篇)
流程控制是python语法很重要的一个分支,主要包括我们经常用到的判断语句、循环语句以及各种表达式,这也是上一篇文章没有介绍表达式的原因,在这篇文章中会更加系统全面的讲解这三方面的基础知识。
奶糖猫
2020/08/04
6190
Python的循环、判断和各种表达式(长文系列第二篇)
3800 字 Python 流程控制专题总结
今天流程控制专题 流程控制与代码的执行顺序息息相关,流程控制相关的关键字,如if,elif,for,while,break,continue,else,return,yield,pass等。
double
2020/07/14
8340
python文档:控制流(if,for,函数,lambda等)
可以有零个或多个 elif 部分,以及一个可选的 else 部分。 关键字 ‘elif’ 是 ‘else if’ 的缩写,适合用于避免过多的缩进。 一个 if … elif … elif … 序列可以看作是其他语言中的 switch 或 case 语句的替代。
川川菜鸟
2021/10/18
9630
Python入门基础教程-流程控制
在进行程序设计的时候,我们会经常进行逻辑判断,根据不同的结果做不同的事,或者重复做某件事,我们对类似这样的工作称为流程控制
小一不二三
2019/12/31
3650
浅谈Go语言中如何进行流程控制
注意:Go语言规定与if匹配的左括号{必须与if和表达式放在同一行,{放在其他位置会触发编译错误。同理,与else匹配的{也必须与else写在同一行,else也必须与上一个if或else if右边的大括号在同一行。
极客运维圈
2020/04/07
3620
相关推荐
Python基础之:Python中的流程控制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验