6-python控制语句执行流程

在这里插入图片描述

if 语句

if 基础

python中 if 语句的形式如下:

  1. if...: 如果……就……
if <条件>:
    <语句1>
    <语句2>
    ...
    

# 例:
>>> a = 4
>>> if a > 1:
		a = a + 1
		print(a)
	
5
  1. 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
  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,...)并行迭代
  1. enumerate()
    在这里插入图片描述
    在这里插入图片描述
  2. sorted()
    在这里插入图片描述
  3. reversed()
    在这里插入图片描述
  4. 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/71/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中所有数的平方,且平方值为偶数的列表:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

[小G]

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值