6-python控制语句执行流程
文章目录
if 语句
if 基础
python中 if 语句的形式如下:
if...
: 如果……就……
if <条件>:
<语句1>
<语句2>
...
# 例:
>>> a = 4
>>> if a > 1:
a = a + 1
print(a)
5
if ...else...
:如果……就……,否则就……
if <条件>:
<语句1>
<语句2>
...
else:
<语句3>
...
# 例:
>>> a = 4
>>> if a < 4:
a = a + 1
print('a + 1')
else:
a = a - 1
print('a - 1')
a - 1
if ...elif...elif...
:如果……就……,否则若是……就……,最后还可以有else
if <条件>:
<语句1>
...
elif <条件>:
<语句2>
...
elif <条件>:
<语句3>
...
# 例:
>>> a = 4
>>> if a >= 6:
print('666')
elif a >= 5:
print('555')
elif a >= 4:
print('444')
444
if 嵌套:
if <条件1>:
if <条件2>:
<语句>
elif <条件3>:
<语句>
else:
<语句>
循环语句
for 语句
python中的 for
语句通过循环遍历某一序列对象(如元组、列表、字典等)来构建循环,循环结束条件就是对象被遍历完。
for 语句形式如下:
for <循环变量> in <序列>:
<语句1>
...
else:
<语句2>
...
else
这一部分的语句只有在循环正常结束后才会执行。
#例:
for i in [1,2,3,4,5]:
print(i)
else:
print('循环结束')
#输出如下:
1
2
3
4
5
循环结束
for语句 + break、continue语句
- break语句,具有终止循环的作用,注意,break只作用于离它最近的一层循环,例如:
for i in ['a','b','c']:
print(i)
for j in [222,444,555]:
if j == 444:
break # 满足条件后,该层循环到这里终止
print(j)
#输出
a
222
b
222
c
222
- continue语句的作用是提前终止本次循环,与break一样,continue只作用于离它最近的一层循环,例如:
for i in ['a','b','c']:
print(i)
for j in [222,444,555]:
if j == 444:
continue # 满足条件后,该轮循环直接跳到下一轮循环
print(j)
#输出
a
222
555
b
222
555
c
222
555
for 语句和range()函数
range()函数原型为 range([start,] stop[, step])
,
可以产生一个整数列表
参数(必须都是整数)含义如下:
- start:可选(可有可无)参数,起始数,默认为0,可以取负数
- stop:必须参数,表示终止数,如果range()只有一个参数,则该参数就被当作是终止数,列表最大值为
stop-1
- step:可选参数,表步长
话不多说,看例子:
for语句结合range()函数
for 语句内置迭代函数(重难点)
常用几个如下:
函数 | 含义 |
---|---|
enumerate(seq) | 编号迭代 |
sorted(seq) | 排序迭代 |
reversed(seq) | 反转迭代 |
zip(seq1,seq2,...) | 并行迭代 |
- enumerate()
- sorted()
- reversed()
zip(seq1,seq2,...)
:
就是把各个序列中序号都为n(n=0,1,2,3...)
的元素分别打包成一个元组,
再把这些元组打包成一个列表。
各个序列长度不一时,只遍历到最短序列的长度.
while循环
虽然在python中大部分循环都可用for语句实现,但while循环也有其特殊作用,在python中常用于构建特别的循环。
while语句形式:
while <条件>:
<语句1>
...
else:
<语句2>
...
增量赋值运算符
python中增量赋值运算符很多,基本的运算符都有其对应的增量赋值运算符
基本运算符 | 增量赋值运算符 |
---|---|
+ | += |
- | -= |
* | *= |
/ | /= |
// (整除) | //= |
** | **= |
% | %= |
& (位运算) | &= |
| (位运算) | |= |
^ (位运算) | ^= |
<< (位运算) | <<= |
>> (位运算) | >>= |
x += 1
相当于 x = x + 1
, 其余类似。
推导或内涵(重难点)
推导基础
列表推导式(提高运行效率)
- 1 个 for 的
- 两个 for 的
- 1 个for
>>> L = [ i**i for i in range(4)]
>>> L
[0,1,4,9]
>>> L1 = [i for i in range(10) if i%2 == 0] # 添加条件,后面不能再有else
>>> L1
[0, 2, 4, 6, 8]
- 2 个 for
>>> L2 = [(i,j) for i in range(5) for j in range(5)]
# 等价于:for i in range(5):
# for j in range(5):
# L2.append(i,j)
>>> print(L2)
[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 0), (3, 1), (3, 2), (3, 3), (3, 4), (4, 0), (4, 1), (4, 2), (4, 3), (4, 4)]
- 应用
例如:有一个列表,[[1,2,3],[4,5,6],[7,8,9]]
问题:如何拿出 1/4/7和1/5/9
>>> L = [[1,2,3],[4,5,6],[7,8,9]]
>>> [i[0] for i in L]
[1,4,7]
>>> #或者用另一个方法
>>> s = [L[i][0] for i in range(len(L))]
>>> s
[1,4,7]
>>> s = [ L[i][i] for i in range(len(L))]
>>> s
[1,5,9]
字典推导式
>>> d = {k :v for k,v in {1:2,3:4,5:6}.items()}
>>> d
{1: 2, 3: 4, 5: 6}
集合推导式
>>> L = [1,2,3,3,4,5] # 这是一个列表
>>> set = { i for i in L}
>>> print(set)
{1,2,3,4,5}
元组生成式
注意是生成式
>>> a = (i for i in range(5))
>>> print(a)
<generator object <genexpr> at 0x0000020A3C9AA480> # 注意是生成式
>>> for j in a:
... print(j)
0
1
2
3
4
推导进阶
列表推导式和字典推导式不仅可以对遍历的元素进行全部处理,还可以用 if 语句有选择的处理。
基本形式如下:
[<关于i的表达式> for i in aiterator if <条件>]
{k:v for k,v in aiterator if <条件>}
aiterator是个可以遍历的对象
例如,获取1~10中所有数的平方,且平方值为偶数的列表:
本文来自博客园,作者:aJream,转载请记得标明出处:https://www.cnblogs.com/ajream/p/15383607.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人