Python 06 for循环、公共操作与推导式

6.1 for循环

配套的 Python 教学视频


6.1.1 For-Each 语句

在前面 我们就已经学习过 For-Each 语句了,学过其它 编程语言的 可能孩子啊 期待 for 的 正常语句 形式。但 很遗憾的是 我们还是要先讲 For-Each 语句。

==因为呀,其实 Python 的 正常 for 循环 是利用 enumerate()配合 range(start,end,step) 来进行 正常 循环的。所以 其实还是在 For-Each 语句中 进行。 ==

那么 我们 今天 又来说 这个 For 语句,又要说 一些其它的什么东西呢?

答:break 终止循环 continue 回到循环起点 for……else:正常结束循环后 必须要执行的 代码段

我们今天 就要讲 这三个 点,在 For-Each 语句中的 重要应用

①比如说 我们在循环的时候 一旦碰到了一些特殊的元素,我们就需要退出这个循环,直接判断 再循环下去 就没意义了,那么就需要用到 break 强制退出!

假设 4 是一个 不吉利的数字,当我们的序列中 存在 4 的时候,我们依次遍历,碰到它 就会 结束循环,因为我们 被一股神秘的力量阻止了。

a = [1,2,3,4,5,6]

for x in a:
    if(x == 4):
        break
    print(x)
    

在这里插入图片描述
③continue 直接回到循环的首部,再次进行下个循环

虽然 4 是个不吉利的数字,但是 我们 克服了它给我们的神秘力量,我们还要 继续 往下 遍历 出所有的数字,这个时候我们 就需要跳过当前的循环,直接来到 下一个循环。

for x in a:
    if(x == 4):
        continue
    print(x)

在这里插入图片描述

③有些时候 我们 的循环里面 在不断的 做判断,一旦出现 不符合我们条件的 元素,那么 我们就会 认为 该序列里面的数据 不符合我们的要求了。这样我们 就会 直接退出 break。因为 继续 循环下去 就没意思了。那么 此时此刻 我们就不会 提示 它符合条件。

a = [1,2,3,4,5,6]
for x in a:
    if(x == 4):
        break
else:print("没有4,符合条件!")

在这里插入图片描述

a = [1,2,3,5,6]
for x in a:
    if(x == 4):
        break
else:print("没有4,符合条件!")

在这里插入图片描述
这个 else: 的意思就是 如果全部正常的 循环完了,我们 可能会 做一些事情,为了 方便的 实现 这样的操作,Python 就提供给我们 这样的 for…else 结构。


6.1.2 公共操作

① 运算符
在这里插入图片描述
② 公共方法

在这里插入图片描述

③ 索引化 for 循环

for 下标,数据 in enumerate(列表,start=0):
	print(f"下标:{下标},数据:{数据}")

enumerate(列表,start=0) 这个start 参数 意思是说 我们 初始下标 是什么。默认的话 是 0.

在这里插入图片描述
那么 我们知道了 下标,其实 就更加的 灵活操作了。而并非光停留在遍历操作上。比如说 我们要去 给每个 元素 都 + 1。

for i,x in enumerate(a):
    print(f"下标:{i},数据:{x}")
    a[i]+=1

print(a)

在这里插入图片描述

有些时候 我们并不 需要 全部遍历操作,而是 在一个给定的范围 内 进行 操作。这个时候 我们就需要 用到 range() 方法。

for 记录 in range(2,4,1) 意思是 我们 从2 开始 步长为 1,一直走到4.也就是总共 循环了 两次,走到 4 的时候 就停止了。而前面的那个 记录变量,是为了 记录 现在 我们 走到哪个数字了。这个 可能我们会用到。

range(开始范围,终止范围,步长)

比如说 我们只 对 下标2开始,到下标4,不包括4,这个 范围内 进行操作。

for 记录 in range(2,4,1):
    print(a[记录])

在这里插入图片描述

通过这个 想法,我们还可以 用 range() 去创建 一些序列。

b = []

for i in range(1,11,1):
    b.append(i)

print(b)

在这里插入图片描述
要记住,range 的中文意思 就是 范围。不要理解为 其它的意思,只是我们可以 通过 这样的 范围 来做 一些神奇的事。

它并不是 像孙兴华 老师说的 用法那么固定。


6.1.3 推导式

range 配合 一些序列类型,是可以用 推导式 方式 直接进行 赋值的。

比如说 直接赋值 从 1 到 11 这个范围内 所有的数字。

列表 = [i for i in range(1,11)]

而这样的 书写格式,我们称为 推导式。

在这里插入图片描述
比如说 直接赋值 从 0 到 11 这个范围内 偶数数字。

列表 = [i for i in range(0,11,2)]

在这里插入图片描述

还可以在 推导式 里 加入 条件语句

列表 = [i for i in range(1,11,1) if i % 2 == 0]

print(列表)

比如 我们 在 任意的 范围内 选出 能被 2 整除的 数,也就是偶数,就需要 里面 写一个 if i  % 2 == 0

在这里插入图片描述

字典也有推导式,比如说 两个列表,它们要合并为一个 字典,其实最快的 方式 是利用 推导式 一步完成。

A = ['华为','小米','苹果','三星']
B = [6988,1998,5888,7888]

字典 = {A[i]:B[i] for i in range(len(A))}

在这里插入图片描述
实际上 我们能看出来,无非 就是在 用range 自己本身的 特性,进行一个 下标取数据的操作而已。

这个地方其实还有个 特别的情况 就是 两个列表 如果不一样长,那么我们 一一对应的形成字典的话,后面 那个len() 的是短的那个列表,还是 长的那个列表呢? 答 : 短的那个列表。因为 如果你要 len 长的那个列表的话,短的那个列表是 没有那么大的 下标的,所以会报 下标溢出的错误。
在这里插入图片描述在这里插入图片描述

再举个例子:

删除某个内容 形成新的字典

字典 = {i:j for i,j in 字典.items() if i != "苹果"}

print(字典)

在这里插入图片描述
集合的 推导式

集合 = {2,2,8}

集合 = {i ** 2 for i in 集合}

print(集合)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值