控制流程
条件判断
前置知识:Input方法
在 Python 中,input()
是一个内置函数,用于从标准输入中获取用户输入的数据
注意
- 输入的值是字符串类型
- 如果想输入是整数 那就需要进行类型转换
a = int(input("请输入想输入的内容'))
1 | # 变量a 就存储着用户输入的数据 |
什么是条件判断
条件判断是编程中一种非常常见的控制结构,它可以帮助我们根据不同的条件来执行不同的代码。可以把它想象成我们生活中的决策过程。
判断的过程中,比较的类型需要一样,例如都是数值类型
1. 语法:
1 | if 判断条件: |
2. 案例 1
假如天气晴朗,我就去打篮球,否则我就去看电影。
1 | # 定义一个a变量 存储今天的天气 |
3. 案例 2
随意输入0-100的整数,如果大于60 就在控制台返回 会当凌绝顶一览众山小 如果小于60就返回 三十年河东三十年河西 莫欺少年穷
1 | a = int(input('随意输入0-100的整数:')) |
多个条件判断
1. 什么是多个条件判断
有些时候,我们的判断语句不可能只有两个,有些时候需要多个,比如说大于等于 60 的为及格,那我们还要判断大于等于 90 的为优秀,在 80 到 90 之间的良好呢?
这时候需要用到 if 语句多个判断条件
2. 语法
1 | if 判断条件1: |
3. 案例 1
1 | a = int(input('请输入分数')) |
4. 案例 2
有时候我们会遇到多个条件的时候该怎么操作呢?
比如说:学校举行一场考试,要求小明的python和java两门语言 都达到80分才算优秀。
- 这时候我们可以结合 or 和 and 来使用。
- or (或)表示两个条件有一个成立时判断条件成功
- and (与)表示只有两个条件同时成立的情况下,判断条件才成功。
1 | python = int(input('请输入python分数')) |
1 | python = int(input('请输入python分数')) |
嵌套
1. 嵌套是指什么
就跟字面意思差不多,指 if 语句中可以嵌套 if 语句。
2. 案例 1
小明,平时正常上班太累了,到了周末如果是晴天,那就出去打篮球,如果不是那就在家看电视
1 | # 定义一个变量来保存今天是不是周末 |
match…case
Python 3.10 引入了 match...case
语句,提供了一种更加结构化和可读性更强的方式来进行条件判断。这个新特性使得编写复杂的条件逻辑变得更加简单和直观,是 Python 对模式匹配功能的实现。以下是对 match...case
语句的使用方法和特点的详细解析。
基本语法
match...case
语句的基本语法如下:
1 | match subject: |
match
后面跟着的是要匹配的对象(subject)。case
后面定义了匹配的条件,如果subject
满足某个条件,则执行该case
下的代码块。- **
_
**(通配符)用于匹配所有未被前面的case
匹配的情况。
多条件匹配
一个 case
语句可以包含多个用管道符(|
)隔开的匹配条件,如果 subject
与其中任何一个条件相匹配,则执行该 case
下的代码块。
1 | match subject: |
使用场景
match...case
语句适用于需要基于一个对象的值或类型进行多个条件判断的场景。它使得代码更加清晰易读,特别是在处理复杂的条件逻辑时,相比于传统的多层 if-else
语句,提供了更好的可读性和效率。
示例
以下是一个使用 match...case
语句的示例,根据不同的水果名称打印相应的颜色:
1 | fruit = "apple" |
注意
match...case
语句是 Python 3.10 及以后版本的新特性,在此之前的版本中不可用。- 使用
match...case
时,需要确保case
后的条件覆盖了所有可能的情况,或者使用通配符_
来处理未匹配到的情况。
三目运算
- 也叫三元运算符,是一种简洁的条件语句表达式。它可以根据条件的成立与否来返回两个值中的一个。
作用:简化代码
- 之前案例,今天学校期末数学考试(60分及格),小明考了66分,请问小明是及格还是没有及格。
1 | # 定义一个变量a 来保存小明的数学成绩 |
循环语句
Python 提供了 for 循环和 while 循环(在 Python 中没有 do..while 循环):
循环类型 | 描述 |
---|---|
while 循环 | 在给定的判断条件为 true 时执行循环体,否则退出循环体。 |
for 循环 | 重复执行语句 |
嵌套循环 | 你可以在while循环体中嵌套for循环 |
循环控制语句
循环控制语句可以更改语句执行的顺序。Python支持以下循环控制语句:
控制语句 | 描述 |
---|---|
break 语句 | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue 语句 | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环。 |
pass 语句 | pass是空语句,是为了保持程序结构的完整性。 |
1. 什么是循环
可以让程序自动地执行多次相同或类似的任务,从而节省编写代码的时间和精力。
一共有两种循环:
- for循环
- while循环
2. for循环
可以遍历一个序列或其他可迭代对象中的元素,并执行特定的代码块。
语法
1 | for 形参 in 遍历对象: |
信息
对象(Objects):
在Python中,几乎所有东西都是对象。这包括数字、字符串、列表、函数,甚至是类和类型本身。每个对象都有三个特性:身份、类型和值。
- 身份:每个对象都有一个唯一的身份,用于区分不同的对象。可以通过
id()
函数来查看对象的身份。 - 类型:对象的类型定义了它可以进行哪些操作或拥有哪些方法。类型可以通过
type()
函数查看。 - 值:对象表示的数据。
形参(Formal Parameters):
当定义一个函数时,可以在函数定义中指定一些参数。这些参数被称为形式参数(形参),它们是函数内部的局部变量。当函数被调用时,形参会接收传递给函数的实际值。这些值被称为实参(实际参数)。
例如:
1 | def add(a, b): # a 和 b 是形参 |
在这个例子中,a
和 b
是形参,它们在函数 add
被调用时接收实际的输入值。
案例
1 | # 案例: 将List的内容全部打印出来 |
range函数
Python 中的 range()
函数是一个非常有用的工具,用于生成一个不可变的数值序列。与 for
循环结合使用时,range()
使得遍历数字序列变得简单高效。这个函数在数据迭代、循环执行等多种场景下都有广泛应用。
功能和用法
- 生成数字序列:
range()
可以生成一个从起始值到终值(不包含终值),按照指定步长的数字序列。
基本语法
1 | range(stop) |
- **
start
**:序列的起始值,默认为0。 - **
stop
**:序列的终止值,生成的序列不包含此值。 - **
step
**:序列中每个数之间的差(步长),默认为1。当步长为正时,序列按升序排列;步长为负时,序列按降序排列。
示例
- 基本遍历:
1 | for i in range(5): |
- 指定区间的值:
1 | for i in range(5, 9): |
- 指定步长:
1 | for i in range(0, 10, 2): |
- 反方向迭代:
1 | for i in range(0, -8, -2): |
访问和转换
- 通过下标访问:
1 | a = range(1, 3) |
- 转换为列表、元组、集合:
1 | a = list(range(0, -8, -2)) |
结合 len()
遍历序列索引
1 | a = ['Google', 'Baidu', 'Runoob', 'Taobao', 'QQ'] |
列表、元组、集合、字典、字符串的for循环的使用案例
列表、元组、集合、字典、字符串皆为 数值类型,详细内容与调用方法跳转查阅
1 | # 列表 |
双层for循环
也可以用于遍历嵌套的数据结构
1 | # 列表里面包字典,这是开发最常见的一种数据方式,我们需要把里面的数据给拿出来 |
3. while循环
常见的循环结构,它可以在条件满足的情况下重复执行一段代码块,直到条件不再满足为止。
语法
1 | while 判断条件: |
案例
1 | a = 11 |
1 | a = 8 |
QA
问:
break
用于退出当前循环?
答:
在Python中,break
语句用于立即退出循环,无论是 for
循环还是 while
循环。一旦执行了 break
,循环将完全终止。
问:
for
对可迭代对象进行遍历
答:
for
循环在Python中用于遍历可迭代对象(如列表、字符串、元组等),对其中的每个元素执行循环体内的语句。
问:
break
和continue
必须成对出现
答:
这个说法是错误的。break
和 continue
是两个不同的循环控制语句,它们可以独立使用。break
用于完全退出循环,而 continue
用于跳过当前循环的剩余部分并继续执行下一次循环迭代。它们没有必须成对出现的要求。
问:
continue
是退出当前循环,继续下一轮循环
答:
这个说法是正确的,但需要稍微澄清。continue
语句并不是退出整个循环,而是结束当前的循环迭代,并立即开始下一次的迭代。如果是在 for
循环中使用 continue
,则会跳到循环的下一个元素;如果是在 while
循环中,会重新评估循环条件。
- 标题: 控制流程
- 作者: Yiuhang Chan
- 创建于 : 2018-08-02 11:13:45
- 更新于 : 2024-02-28 18:49:00
- 链接: https://www.yiuhangblog.com/2018/08/02/20180802流程控制/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。