【Python从入门到进阶】10、流程控制语句-循环语句(for-while)
创始人
2024-05-28 23:35:40
0

接上篇《9、流程控制语句-条件语句(if-else)》
上一篇我们学习了Python的控制流语句的概念,以及其中的条件语句(if/else),本篇我们来学习控制流语句中的循环语句(for/while)。

一、Python中的循环

Python的循环结构就是让程序“杀个回马枪”,不断地重复执行同一段代码。Python中的循环语句有2种,分别是for循环和while循环,我们下面一一来进行讲解。

二、for循环

1、语法格式

for 循环的语法格式如下:

for 迭代变量 in 字符串|列表|元组|字典|集合:代码块

语法中的迭代变量,就是用来存放从后面的序列类型的集合中取出来的单个元素。代码块是用来进行循环调用的代码,也被成为循环体。

for语句的大致执行流程图如下所示:

2、核心功能

for循环最重要的也是最核心的功能就是遍历,坦白点说就是一个一个的输出。例如下面这个例子,我们想一个个的打印python字符串的每一个字符,如果没有for循环,是这样的:

s = "python"
print("第1个字符是:",s[0])
print("第2个字符是:",s[1])
print("第3个字符是:",s[2])
print("第4个字符是:",s[3])
print("第5个字符是:",s[4])
print("第6个字符是:",s[5])

效果:

第1个字符是: p
第2个字符是: y
第3个字符是: t
第4个字符是: h
第5个字符是: o
第6个字符是: n

这样固然是可以全部遍历,但是如果有一百个或一万个字符呢?所以我们要是用简便的方法来循环内容。

有了for循环,就可以在for循环的代码块中不停的循环遍历:

s = "python"
i = 1
for ch in s:print(f"第{i}个字符是:", ch)i+=1

效果:

第1个字符是: p
第2个字符是: y
第3个字符是: t
第4个字符是: h
第5个字符是: o
第6个字符是: n

这里只需要编写一个for循环结构即可解决这个问题。

3、遍历列表和元组

当用for循环遍历list列表或者tuple元组时,其迭代变量会先后被赋值为列表或元组中的每个元素并执行一次循环体。实例:

#列表
test_list = [110,120,119]
for n in test_list:print("n = ",n)#元组
test_tuple = (66,88,99)
for m in test_tuple:print("m = ",m)

效果:

n =  110
n =  120
n =  119
m =  66
m =  88
m =  99

如果我们想获取列表的下标,可以利用range函数,这里介绍一下range函数,range()函数能够轻松地生成一系列的数字,格式:

range(开始数字,结束数字) 或 range(结束数字)

range()函数的用法是:让Python从指定的第一个值开始,一直数到指定的第二个值停止,但不包含第二个值。如果参数仅有一个数字,则默认从0开始遍历。
比如:

>>> list(range(1,6))
[1, 2, 3, 4, 5]

注意:range()函数的返回值类型为range,并不直接是列表类型(list),而如果想要得到range()函数创建的数字列表,需要借助list()函数。

range还可以指定步长,格式:

range(开始数字,结束数字,步长)

函数range()从“开始数字”开始数,然后不断地加“步长”数字,直到达到或超过终值“结束数字”。
比如:

>>> n = list(range(2,11,2))
>>> print(n)
[2, 4, 6, 8, 10]

所以我们借助这个思路,可以思考一下,一般list列表或者tuple元组的长度都是从0开始,然后到len(列表或元组)结束(len()函数用于计算列表等多元素集合的长度),所以获取列表或元组的所有下标的函数应写为:

range(0,len(列表或元组变量名))

所以当上面的代码需要打印下标的时候,代码为:

#列表
test_list = [110,120,119]
for i in range(0,len(test_list)):print(f"test_list[{i}] = ",test_list[i])#元组
test_tuple = (66,88,99)
for j in range(0,len(test_tuple)):print(f"test_tuple[{j}] = ",test_tuple[j])

效果:

test_list[0] =  110
test_list[1] =  120
test_list[2] =  119
test_tuple[0] =  66
test_tuple[1] =  88
test_tuple[2] =  99

4、遍历字典

如果使用for循环直接遍历字典,则迭代变量会被先后赋值为每个键值对中的键,如下:

per_con = {'姓名': "光仔December",'年龄': "30岁",'学校': "河南理工大学"}
for ele in per_con:print('ele =', ele)

结果:

ele = 姓名
ele = 年龄
ele = 学校

在使用for循环遍历字典时,经常会用到和字典相关的3个方法,即items()、keys()以及values(),其中items()是每个键值对元素,keys()是键,values()是值,所以可以这样获取字典中的每个元素、每个元素的键,每个元素的值:

per_con = {'姓名': "光仔December",'年龄': "30岁",'学校': "河南理工大学"}
for ele in per_con.items():print('键值对元素 =', ele)
for key,value in per_con.items():print(f'key = {key},value = {value}')
for ele in per_con.keys():print('元素的key =', ele)
for ele in per_con.values():print('元素的value =', ele)

结果:

键值对元素 = ('姓名', '光仔December')
键值对元素 = ('年龄', '30岁')
键值对元素 = ('学校', '河南理工大学')
key = 姓名,value = 光仔December
key = 年龄,value = 30岁
key = 学校,value = 河南理工大学
元素的key = 姓名
元素的key = 年龄
元素的key = 学校
元素的value = 光仔December
元素的value = 30岁
元素的value = 河南理工大学

三、while循环

while循环和if条件分支语句类似,即在条件(表达式)为真的情况下,会执行相应的代码块。不同之处在于,只要条件为真,while就会一直重复执行那段代码块。语法格式如下:

while 条件表达式:代码块

这里的代码块,指的是缩进格式相同的多行代码,不过在循环结构中,它又称为循环体。
while语句执行的具体流程为:首先判断条件表达式的值,其值为真(True)时,则执行代码块中的语句,当执行完毕后,再回过头来重新判断条件表达式的值是否为真,若仍为真,则继续重新执行代码块...如此循环,直到条件表达式的值为假(False),才终止循环。执行流程如下图所示:

如打印10以内的所有偶数就可以使用while循环,代码如下:

# 循环的初始化条件
num = 1
# 当 num 小于10时,会一直执行循环体
while num < 10 :if num%2==0 :print("num=", num)else:print("*****")# 迭代语句num += 1
print("循环结束!")

效果:

*****
num= 2
*****
num= 4
*****
num= 6
*****
num= 8
*****
循环结束!

注意,在使用while循环时,一定要保证循环条件有变成假的时候,否则这个循环将成为一个死循环。所谓死循环,指的是无法结束循环的循环结构,例如将上面while循环中的num+=1代码注释掉,再运行程序你会发现,Python解释器一直在输出"*****",永远不会结束(因为num<10一直为True),除非我们强制关闭解释器:

除此之外,while循环还常用来遍历列表、元组和字符串,因为它们都支持通过下标索引获取指定位置的元素。
代码示例:

#遍历字符串
my_char="python"
i = 0
while i

效果:

my_char[0]: p
my_char[1]: y
my_char[2]: t
my_char[3]: h
my_char[4]: o
my_char[5]: n
test_list[0]: 110
test_list[1]: 120
test_list[2]: 119
test_tuple[0]: 66
test_tuple[1]: 88
test_tuple[2]: 99

至此,有关Python的流程控制语句所有内容内容就讲解完毕了,下一篇我们继续来学习字符串的高级应用。

参考:尚硅谷Python爬虫教程小白零基础速通教学视频

转载请注明出处:https://blog.csdn.net/acmman/article/details/129349447

相关内容

热门资讯

安卓系统app怎么解压,探索应... 你是不是也遇到过这种情况:下载了一个安卓系统的APP,结果发现它是一个压缩包,怎么也解压不开?别急,...
安卓系统手机最新推荐,引领潮流... 手机控们,是不是又到了换新手机的季节啦?没错,随着科技的飞速发展,安卓系统手机市场也是日新月异,各种...
安卓系统带蓝牙导航,智能导航新... 你有没有想过,拥有一部安卓手机,竟然可以变成一个移动的导航大师?没错,就是那种随时随地都能告诉你“前...
htc安卓系统刷小米系统吗,揭... 你有没有想过,手机系统之间的“跨界”竟然也能成为热门话题呢?没错,今天咱们就来聊聊这个新鲜事儿——H...
低代码开发安卓系统,轻松构建高... 你有没有想过,连编程小白也能轻松驾驭的安卓系统开发?没错,就是那种听起来高大上,但实际上门槛低到让你...
华为为啥还用安卓系统,揭秘其在... 你知道吗?华为,这个在手机界大名鼎鼎的中国品牌,竟然还在用安卓系统!是不是觉得有点不可思议?别急,让...
安卓系统的obb文件,功能与使... 你有没有发现,安卓手机里的那些游戏,有时候会突然出现一个叫作“obb文件”的小家伙?别小看了这个不起...
凤凰系统下载教程安卓,体验流畅... 你有没有听说最近超级火的凤凰系统?这款安卓系统可是让不少手机控们兴奋不已呢!今天,我就来给你详细介绍...
电脑安卓系统怎样使用,轻松使用... 你有没有想过,你的安卓系统电脑到底是怎么运作的?是不是有时候觉得它有点儿神秘,有点儿复杂?别担心,今...
ios系统跟安卓系统哪个好,谁... 说到手机操作系统,iOS和安卓绝对是两大巨头,它们就像江湖上的两大门派,各有各的粉丝。那么,iOS系...
mac 系统安装 安卓系统安装... 亲爱的电脑小白们,是不是最近对电脑系统安装跃跃欲试,但又觉得无从下手?别担心,今天我就要来给你详细讲...
提醒安卓系统升级,体验流畅新篇... 亲爱的安卓用户们,是不是觉得手机越来越卡,应用更新总是跟不上潮流?别急,今天我要给你来点干货,告诉你...
安卓系统outlook会议提醒... 你有没有发现,手机上的安卓系统越来越智能了?这不,最近我发现了一个超实用的功能——Outlook会议...
安卓系统专业软件剪辑,打造高效... 你有没有想过,手机里的视频剪辑功能竟然也能如此专业?没错,就是那个我们每天不离手的安卓系统,它竟然能...
模拟安卓系统软件,软件功能与体... 你有没有想过,手机里的世界可以变得更加丰富多彩?没错,就是那种可以像安卓系统一样自由自在地玩耍的世界...
安卓换系统会卡吗,换系统会卡吗... 你有没有想过,你的安卓手机用久了,是不是也会像人一样,反应变得迟钝了呢?没错,这就是我们今天要探讨的...
平板安卓系统自动重启,安卓平板... 你是不是也遇到过这种情况?平板电脑突然间就自动重启了,是不是瞬间感觉心里一紧,心想这可怎么办呢?别急...
findx3安卓系统,安卓系统... 你有没有发现,最近手机圈里又掀起了一股热潮?没错,就是OPPO Find X3系列的安卓系统。这款系...
安卓系统删除的软件,那些曾陪伴... 手机里的软件越来越多,是不是有时候觉得内存不够用,想清理一下呢?别急,今天就来聊聊安卓系统删除软件的...
白色的手机安卓系统,安卓系统下... 你有没有发现,最近市面上那些白色的手机简直让人眼前一亮呢?尤其是搭载安卓系统的那些,简直就像是一块块...