Python 语法学习笔记——知识分享(4)

一、条件控制

1.1 if 条件语句

if 条件语句是通过布尔表达式的值来决定所要执行的代码块。

1.1.1 if 语法格式(伪代码形式)

格式一

if condition:
	<statements>

格式二

if condition:
	<statements>
else:
	<statements'>

语法三

if condition:
	<statements>
elif condition_1:
	<statements_1>
...
elif condition_n:
	<statements_n>
else:
	<statements'>

1.1.2 说明

  1. condition为布尔表达式,即返回结果为布尔类型数据的表达式。
  2. 在执行 if 语句时,计算机会从上往下依次判断每个布尔表达式的值,直到返回结果为 True 的布尔表达式出现为止,接着执行对应的<statements>代码块。
    在执行完代码块后,计算机会自动忽略后面的条件语句,并直接跳出整个条件语句块。
  3. 特别地,当有一个代码块<statements>只有一条语句时,可以将该语句与相应的条件关键字 (ifelifelse) 放在同一行,构成一个简单语句组。

1.1.3 注意

  1. 每个条件后面都要使用英文冒号:,以表示接下来是满足条件后所要执行的代码块,不可以省略。
  2. 如果将指向可迭代对象 (iterable) 的变量名作为布尔表达式,则当可迭代对象至少包含一个元素时返回值为 True,当可迭代对象为空时返回值为 False。
  3. Python 并不要求 if-elif 结构后面必须紧跟 else 代码块,即可以省略不写 else 代码块。

1.2 match 条件语句

match 条件语句是在 Python 3.10 中引入的一种语法,主要用于模式匹配,可以将一个值与多个模式进行比较,并执行与第一个匹配成功的模式所对应的代码块。

1.2.1 match 语法格式(伪代码形式)

match expression:
	case pattern_1:
		<statements_1>
	case pattern_2:
		<statements_2>
	...
	case _:
		<statements>

1.2.2 说明

  1. expressionpattern是要进行模型匹配的具有返回值的表达式;
  2. 最后一个 case 后面紧跟的符号_是通配符,表示任意值,作用类似于 C 语言的 switch 语句中的 default。
  3. 在 match 语句中,只要执行完匹配成功的模式所对应的代码块,计算机就会自动忽略后面的条件语句,并直接跳出整个条件语句块。
    因此,Python 的 match 语句不存在类似 C 语言的 switch 语句的穿透问题。
  4. 特别地,当有一个代码块<statements>只有一条语句时,也可以将该语句与关键字 case 放在同一行,构成一个简单语句组。

1.2.3 注意

  1. 每个模式后面都要紧跟英文冒号:,以表示接下来是匹配成功后所要执行的代码块,不可以省略。
  2. 每个 case 后面都可以有多个模式,当 case 后面有多个模式时,在不同模式之间需要使用|来进行模式组合。此时,只要多个模式中有一个匹配成功,就会执行相应的代码块。
  3. 如果在 match 语句中,没有一个模式匹配成功,则会触发 MatchError 异常。因此最好在 match 语句中的最后加上 case _ 代码块,以确保永远可以匹配成功。

二、循环语句

2.1 for 循环语句

for 循环可以遍历任何可迭代的数据类型。

2.1.1 for 语法格式(伪代码形式)

for variable in iterable:
	<statements>

2.1.2 说明

  1. variable即变量,可以给variable指定任意名称,但最好选择可以描述可迭代对象元素的有意义的名称;
  2. iterable为可迭代对象,可以是序列类型数据、字典类型数据的视图对象或集合类型数据等;
  3. for 语句的每一次循环,都会在iterable中进行取值,并对变量variable进行赋值,当variable取尽iterable中的所有元素后,循环结束。
  4. 特别地,当有代码块 <statements> 只有一条语句时,也可以如同条件语句一样构成一个简单语句组。

2.1.3 注意

  1. for 循环并不是判断variable的值是否存在于iterable中,而是重复地将iterable中的元素赋值给variable
  2. 和条件语句一样,出现在 for 循环语句中的冒号:也不可以省略。

2.2 while 循环语句

while 循环语句用于在指定的布尔表达式的结果为真时,循环执行相应的代码块,直到布尔表达式的结果为假。

2.2.1 while 语法格式(伪代码形式)

while condition:
	<statements>

2.2.2 说明

  1. condition为布尔表达式,即返回结果为布尔类型数据的表达式。
  2. while 循环语句在每一次执行代码块<statements>之前,都会对condition的结果进行判断,如果结果为真,则执行<statements>;如果结果为假,则直接结束循环。
  3. 特别地,当有代码块<statements>只有一条语句时,也可以如同条件语句一样构成一个简单语句组。

2.2.3 注意

  1. 在大多数情况下,循环条件condition的结果必须能够在循环的某一次执行中发生变化,否则循环将变成无限循环,导致程序崩溃或无法结束。
  2. 在使用 while 循环时,需要确保循环条件condition有一个合理的初始值,以便在第一次循环时可以正确执行循环条件的判断。
  3. 和条件语句一样,出现在 while 循环语句中的冒号:也不可以省略。

三、break 和 continue

3.1 break

作用:用于在循环语句中终止循环。

即使循环条件仍然满足,一旦计算机执行到 break 语句,循环就会立即结束,跳出整个循环结构。

break 可以单独成为一条语句,且 break 语句通常位于循环内部的某个条件语句中,用于在满足某种条件下,提前终止循环,并跳出循环结构。例如:

for variable in iterable:
  <statements_1>
  if condition:
    break
  <statements_2>
while condition_1:
  <statements_1>
  if condition_2:
    break
  <statements_2>

注意:

  1. break 一次只能终止一个循环;
  2. 如果 break 存在于嵌套循环内,则 break 语句只能终止其所处的循环及内层循环,而无法终止外层循环;
  3. break 语句只能用于循环结构中。

3.2 continue

作用:用于在循环语句中提前结束当前循环,并进入下一次循环。

continue 可以单独成为一条语句,且 continue 语句通常位于循环内部的某个条件语句中,用于在满足某种条件下,提前结束当前循环,并进入下一次循环。例如:

for variable in iterable:
  <statements_1>
  if condition:
    continue
  <statements_2>
while condition_1:
  <statements_1>
  if condition_2:
    continue
  <statements_2>

注意:

  1. continue 只能跳过当前循环中后面还未被执行的语句;
  2. continue 语句只能用于循环结构中。

四、pass

和 break、continue 一样,pass 也可以单独成为一条语句;不同的是,pass 语句不仅可以用于循环结构中,也可以用于其它任何地方。

作用:用于表示 “空操作”,即 pass 语句 “ 什么也不做”。

pass 通常用于充当占位符,表示代码尚未实现、待添加或待完善的部分。

可能使用 pass 语句的场景:

  1. 在开发过程中暂时空出函数的实现部分,以便先完成其它代码的编写;
  2. 在添加新代码时,占用一个编写位置。例如在 if 或 while 语句中使用,让代码结构更加合理清晰。
  3. 保留将来可能添加到程序中的特定代码结构或占位符。
  4. 避免由于忘记了特定的业务逻辑而导致代码实现错误。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值