>>> 0
>>> 1
>>> 2
>>> 3
>>> 4
else 在 for 循环中的使用
-
else 语句只能在 for 循环正常退出后执行
-
也就是说循环没有报错,没有中途停止的情况下, else 语句 才会发生作用
示例如下:
‘’’
for 变量 in 序列:
代码块 1
else:
代码块 2
‘’’
test_int = range(5)
for item in test_int:
print(item)
else:
print(‘for循环成功结束’)
重点
-
若想执行 else 里面的代码块,必须是触达到循环条件且为假
-
如果在循环里面提前结束了循环(break),则不会执行 else 里面的代码块
for 循环删除列表元素的避坑指南
首先,我们定义一个列表,使用 for 循环 删除列表中偶数(即能够被2整除的元素)
test_list = [3, 6, 8, 9, 25, 36, 100, 105]
for item in test_list:
if item % 2 == 0:
test_list.remove(item)
print(test_list)
执行结果如下:
>>> [3, 8, 9, 25, 100, 105]
这里我们会发现 元素 8 、元素 100 仍然存在,删除 偶数 元素的操作存在了遗漏。这是为什么呢?
其实,这是因为 remove() 函数在执行删除一个元素之后,后边的元素会自动补位到上一个被删除元素的位置上去。然而此时的 for 循环 在正向的往下运行,会略过这个补位的元素,由此就造成了遍历的遗漏。
所以正确的遍历代码如下:
test_list = [3, 6, 8, 9, 25, 36, 100, 105]
for item in test_list[::-1]:
if item % 2 == 0:
test_list.remove(item)
print(test_list)
执行结果如下:
>>> [3, 9, 25, 105]
嵌套 for 循环
什么是嵌套 for 循环? —> 即 for 循环中还有 for 循环
示例如下:
for i in range(3):
for j in range(2):
print(‘内层循环:’, j)
print(‘外层循环:’, i)
>>> 执行结果如下:
>>> 内层循环: 0
>>> 外层循环: 0
>>> 内层循环: 1
>>> 外层循环: 0
>>> 内层循环: 0
>>> 外层循环: 1
>>> 内层循环: 1
>>> 外层循环: 1
>>> 内层循环: 0
>>> 外层循环: 2
>>> 内层循环: 1
>>> 外层循环: 2
name = [‘Neo’, ‘Jack’, ‘Lily’]
age = [17, 18]
for a in name:
print(a)
for b in age:
print(‘姓名:’, a, ‘年龄:’, b)
>>> 执行结果如下:
>>> 姓名: Neo 年龄: 17
>>> 姓名: Neo 年龄: 18
>>> 姓名: Jack 年龄: 17
>>> 姓名: Jack 年龄: 18
>>> 姓名: Lily 年龄: 17
>>> 姓名: Lily 年龄: 18
什么是 while 循环? —> 以一定条件为基础的循环,条件满足的情况下无限循环,条件不满足则退出循环。
while 循环 不依赖可迭代的数据类型,而 for 循环依赖。
while 循环的功能:在满足条件的情况下,会无限循环;不满足条件后,将停止循环。
while 循环的用法:示例如下
while bool_result:
do
>>> bool_result : 布尔类型,此处与 if 语法完全一直
>>> do : while 循环体的代码块;需要缩进
>>> 返回值 : while 循环是语句,没有返回值
test_int = 1
while test_int < 5:
print(test_int, end=‘\n’)
test_int += 1
>>> 执行结果如下:
>>> 1
>>> 2
>>> 3
>>> 4
users_list = [‘Neo’, ‘Jack’, ‘Lily’, ‘Adem’]
index = 0
length = len(users_list)
while index <= length - 1:
print(‘当前循环到的用户名为:’, users_list[index])
index += 1
print(‘while循环结束’)
>>> 执行结果如下:
>>> 当前循环到的用户名为: Neo
>>> 当前循环到的用户名为: Jack
>>> 当前循环到的用户名为: Lily
>>> 当前循环到的用户名为: Adem
>>> while循环结束
注意:应避免 while True: 的情况,否则会进入死循环。
列表推导式也叫做列表解析式,是一种快速创建列表的简洁语法。
列表推导式以[]中括号为标志,一般由表达式、循环语句、条件语句组成(条件语句非必须)。
列表推导式 和 for 循环明显存在的关联,下面我们看一下对比。
20以内所有偶数的平方
list_1 = []
for x in range(20):
if x % 2 == 0:
list_1.append(x**2)
print(list_1)
运行结果:[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
列表推导式,20以内所有偶数的平方
print([x ** 2 for x in range(20) if x % 2 == 0])
运行结果:[0, 4, 16, 36, 64, 100, 144, 196, 256, 324]
列表推导式对 for 循环语句的格式做了一下简单的变形,并用 [ ] 括起来,最终将循环过程中计算表达式得到的一系列值组成一个列表。
常见的推导式方法
元组推导式如下:
元组推导式
t_1 = (x for x in range(10)) # 结果是生成器对象,使用tuple()函数将其转换为元组
print(tuple(t_1))
运行结果:(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
字典推导式如下:
字典推导式
print({x:x**2 for x in range(10)})
运行结果:{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
集合推导式如下:
集合推导式
print({x for x in range(10)})
运行结果:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
前面我们学习了 for 循环
与 while 循环
, 它们可以帮助我们自动处理一些业务。但是在循环中难免会出一些意外的状况,这个时候如果再继续循环下去,就会对我们的业务不利,这个时候就需要使用到 continue
、break
来帮助我们河狸的退出循环。
continue 的使用
continue 的功能:循环遇到 continue 将停止本次数据循环,进行下一次循环
continue 的用法:示例如下
while bool:
continue
for item in iterable:
continue
print(item)
>>> continue : 属于语法,不需要加 () 即可执行;无参数
>>> 返回值 : continue 是语法,没有返回值。
count = 1
while count < 5:
print(count)
continue
count += 1
>>> 执行结果如下:
>>> 1, 1, 1, 1, … 无限循环,一直是1
break 的使用
break 的功能:是循环正常停止循环(遍历),这时如果循环配合了 else 语句,else语句将不执行。
break 的用法:示例如下
while bool:
break
for item in iterable
print(item)
break
>>> break :属于语法,不需要加 () 即可执行;无参数。
>>> 返回值 : break 是语法,没有返回值。
count = 1
while count < 5:
print(count)
count += 1
break
>>> 执行结果如下:
>>> 1
条件语句 与 continue、break 的关系
-
continu 与 break 通常伴随着循环语句中的条件语句,满足某些条件可以继续执行,不满足某些条件提前结束循环。
-
在 while 循环中,break 语句的优先权要大于 while 逻辑块的判断结果 (比如上文中的 count += 1)
示例如下:
count = 1
while count < 5:
print(count)
count += 1
if count == 2:
break
>>> 执行结果如下:
>>> 1
代码示例如下:
for 循环 实现九九乘法表
for i in range(1, 10):
for j in range(1, i + 1):
print(‘{} * {} = {}’.format(i, j, i * j), end=’ ')
print(‘’)
>>> 执行结果如下:
>>> 1 * 1 = 1
>>> 2 * 1 = 2 2 * 2 = 4
>>> 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9
>>> 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16
>>> 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25
>>> 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36
>>> 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49
>>> 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64
>>> 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
while 循环 实现九九乘法表
i = 0
j = 0
while i < 9:
i += 1
while j < 9:
j += 1
print(‘{} * {} = {}’.format(j, i, i * j), end=’ ')
if i == j:
j = 0
print(‘’)
break
>>> 执行结果如下:
>>> 1 * 1 = 1
>>> 1 * 2 = 2 2 * 2 = 4
>>> 1 * 3 = 3 2 * 3 = 6 3 * 3 = 9
>>> 1 * 4 = 4 2 * 4 = 8 3 * 4 = 12 4 * 4 = 16
>>> 1 * 5 = 5 2 * 5 = 10 3 * 5 = 15 4 * 5 = 20 5 * 5 = 25
>>> 1 * 6 = 6 2 * 6 = 12 3 * 6 = 18 4 * 6 = 24 5 * 6 = 30 6 * 6 = 36
>>> 1 * 7 = 7 2 * 7 = 14 3 * 7 = 21 4 * 7 = 28 5 * 7 = 35 6 * 7 = 42 7 * 7 = 49
>>> 1 * 8 = 8 2 * 8 = 16 3 * 8 = 24 4 * 8 = 32 5 * 8 = 40 6 * 8 = 48 7 * 8 = 56 8 * 8 = 64
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)
入阿里一直到现在。**
深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-DfpXJo9H-1713692441462)]
[外链图片转存中…(img-eqrRZEPH-1713692441463)]
[外链图片转存中…(img-6yTrsvwS-1713692441464)]
[外链图片转存中…(img-Bc9OyWqD-1713692441465)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以扫码获取!!!(备注:Python)