Python零基础入门篇 - 30 - Python中的循环

>>> start : 开始的数字,类似索引的左边

>>> stop : 结束的数字,类似索引的右边

>>> step : 跳步,类似索引中的第三个参数

>>> 返回值 : 返回一个可迭代(循环的)以整型为主的对象

>>> 需要注意的是 range() 也是 左含右不含的方式

test_int = range(5)

for item in test_int:

print(item)

>>> 执行结果如下:

>>> 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 循环? —> 以一定条件为基础的循环,条件满足的情况下无限循环,条件不满足则退出循环。

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}

循环的继续与退出(continue 与 break)


前面我们学习了 for 循环while 循环 , 它们可以帮助我们自动处理一些业务。但是在循环中难免会出一些意外的状况,这个时候如果再继续循环下去,就会对我们的业务不利,这个时候就需要使用到 continuebreak 来帮助我们河狸的退出循环。

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=’ ')

最后

Python崛起并且风靡,因为优点多、应用领域广、被大牛们认可。学习 Python 门槛很低,但它的晋级路线很多,通过它你能进入机器学习、数据挖掘、大数据,CS等更加高级的领域。Python可以做网络应用,可以做科学计算,数据分析,可以做网络爬虫,可以做机器学习、自然语言处理、可以写游戏、可以做桌面应用…Python可以做的很多,你需要学好基础,再选择明确的方向。这里给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

👉Python所有方向的学习路线👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

👉Python必备开发工具👈

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

👉Python全套学习视频👈

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

👉实战案例👈

学python就与学数学一样,是不能只看书不做题的,直接看步骤和答案会让人误以为自己全都掌握了,但是碰到生题的时候还是会一筹莫展。

因此在学习python的过程中一定要记得多动手写代码,教程只需要看一两遍即可。

👉大厂面试真题👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

需要这份系统化学习资料的朋友,可以戳这里无偿获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值