首页Python【Python基础】12....

【Python基础】12.程序控制结构——循环结构


本系列文章配套代码获取有以下三种途径:

  • 可以在以下网站查看,该网站是使用JupyterLite搭建的web端Jupyter环境,因此无需在本地安装运行环境即可使用,首次运行浏览器需要下载一些配置文件(大约20M):

https://returu.github.io/Python_Basic/lab/index.html
链接:https://pan.baidu.com/s/1x2Ynh_VibPY2u-HWTaJo8w?pwd=mnsj 提取码:mnsj
  • 前往GitHub详情页面,单击 code 按钮,选择Download ZIP选项:
https://github.com/returu/Python_Basic

—————————————————

Python通过forwhile等保留字提供了遍历循环和无限循环结构。

1.遍历循环:for语句

Python中通过保留字for实现遍历循环,基本语法如下:

1for <循环变量> in <遍历结构>:
2    <语句块>

for语句循环的次数是根据遍历结构(字符串、组合数据类型、文件、range()函数)中元素的个数确定的。从遍历结构中逐一提取其中的元素,将提取的元素执行依次语句块。

1#遍历结构为字符串
2for i in 'Python':
3    print(i)
程序执行结果为:
1P
2y
3t
4h
5o
6n

——————————————————————————

1#遍历结构为组合数据类型:列表
2for i in ['A','B','C']:
3    print(i)
程序执行结果为:
1A
2B
3C

——————————————————————————

1#遍历结构为range()函数
2for i in range(4):
3    print('循环次数:',i)

程序执行结果为:

1循环次数: 0
2循环次数: 1
3循环次数: 2
4循环次数: 3

2.无限循环:while语句

无限循环会一直保持循环操作直至循环条件不满足为止。

Python中通过保留字while实现无限循环,基本语法如下:

1while <条件>:
2    <语句块>

当条件为True时,循环执行语句块中的语句;当条件为False时,循环终止,执行与while同级别缩进的后续语句。

1# 通过while循环实现一个计数循环,需要在循环之前初始化一个计数器idx,在每次循环时对计数器进行累加
2
3idx = 0
4
5while idx < len('python'): # 条件为;idx < 字符串python的长度值
6    print('循环次数为:' , idx+1) # 条件为True时执行的语句
7    idx += 1 # 每循环一次,idx值就加1
8
9print('循环结束!'# 条件为False时执行的后续语句

程序执行结果为:

1循环次数为:1
2循环次数为:2
3循环次数为:3
4循环次数为:4
5循环次数为:5
6循环次数为:6
7循环结束!

3.循环保留字:break、continue

breakcontinue保留字用于辅助控制循环结构。

  • break用于跳出最内层的for或while循环,然后执行后续语句。

1break保留字
2for s in 'python':
3    if s == 't':
4        break
5    print(s)

程序执行结果为:

1p
2y

需要注意的是,当程序有多个循环嵌套时,break只是跳出最内层的循环,但是仍然会执行外层的循环。

1# 当程序有多个循环嵌套时,break只是跳出最内层的循环,但是仍然会执行外层的循环
2for s in 'python':
3    for i in range(3):
4        print(s)
5        if s == 't':
6            break

程序执行结果为(字母t只输出1次,其余字母均为3次):

 1p
2p
3p
4y
5y
6y
7t
8h
9h
10h
11o
12o
13o
14n
15n
16n
17
  • continue用于结束当前当次循环,即跳出当前循环体中尚未执行的语句,但是不跳出当前循环。

1continue保留字
2for s in 'python':
3    if s == 't':
4        continue
5    print(s)

程序执行结果为:

1p
2y
3h
4o
5n

4.使用zip()迭代多个序列

在循环结构中,使用zip()函数可以很方便的迭代多个序列。

1students = ['Tom' , 'Jon' , 'Jerry']
2scores = [55 , 66 , 77]
3
4for student , score in zip(students , scores):
5    print(f'学生{student}本次考试分数为{score}。')

另外使用zip()可以很方便的生成元祖列表或者字典数据(后续内容)结构。

1# 生成元祖列表
2>>> students = 'Tom' , 'Jon' , 'Jerry'
3>>> scores = 55 , 66 , 77
4>>> list(zip(students , scores))
5[('Tom'55), ('Jon'66), ('Jerry'77)]
1# 生成字典
2>>> students = 'Tom' , 'Jon' , 'Jerry'
3>>> scores = 55 , 66 , 77
4>>> dict(zip(students , scores))
5{'Tom'55'Jon'66'Jerry'77}

5.迭代器:

for语句循环的次数是根据遍历结构中元素的个数确定的。

在遍历的过程中,隐式的调用了内置的iter()函数。iter()被调用后,会返回一个迭代器对象。迭代器对象定义了__next__()方法,每调用一次得到一个元素,当没有元素时,将通过StopIteration异常来告诉for语句停止遍历。

 1>>> ls = ['A','B','C']
2>>> it = iter(ls)
3>>> it
4<list_iterator at 0x20eb239b880>
5>>> it.__next__()
6'A'
7>>> it.__next__()
8'B'
9>>> it.__next__()
10'C'
11>>> it.__next__()
12Traceback (most recent call last):
13  File "<stdin>", line 1in <module>
14StopIteration

本篇文章来源于微信公众号: 码农设计师

RELATED ARTICLES

欢迎留下您的宝贵建议

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Recent Comments