Python语句: For 循环的详细讲解
今天就跟大家分享一下python的for循环的使用。
_
其实不管学习或者使用什么开发语言都会用到for和while循环,当然for循环是最多的,用于获取和生成批量数据,在开发中是很常用的。
一、for循环
for循环:循环就是重复做某件事,for循环是python提供第二种循环机制(第一种是while循环),理论上for循环能做的事情,while循环都可以做。
目的:之所以要有for循环,是因为for循环在循环取值(遍历取值)比while循环更简洁。
在Python中,for循环是一种迭代结构,用于遍历可迭代对象(如列表、元组、字符串、字典、集合等)中的元素。
for循环可以解决while循环的局限性。
二、for循环语法如下
for 变量名 in 可迭代对象: # 此时只需知道可迭代对象可以是字符串\列表\字典,其实也可以是tuple(),set()
代码一
代码二
# # for循环
# # 列表取值
# l = ['lsj','a','b']
# for x in l:
# print(x)
lsj
a
b ...
根据上面的for循环,它的运行步骤如下:
![](https://img-blog.csdnimg.cn/img_convert/a1e8cc68efe18d01bd6b6f5ba14382bf.png
三、 for循环应用案例
获取数据:
# 简单版:for循环的实现方式
# l = ['lsj', 'b', 'c'] # 定义一个列表
# for x in l:
# print(x)
# lsj
# b
# c# 复杂版:while循环的实现方式
l = ["lsj","b","c"]
i = 0
while i < 3:print(l[i])i += 1# lsj
# b
# c# 使用循环取出0-5的值
# 简单版:for循环的实现方式一、
# for count in range(6): # range(6)会产生从0-5这6个数
# print(count)
# 复杂版:while循环的实现方式
# count = 0
# while count < 6:
# print(count)
# count += 1
遍历字典:
# 简单版:for循环的实现方式
dic = {'name':'lsj','age':18,'gender':'male'}
for k in dic: # for 循环默认取的是字典的key赋值给变量名kprint(k,dic[k])
# name lsj
# age 18
# gender malefor循环嵌套:```python#请用for循环嵌套的方式打印如下图形:
*****
*****
*****
for i in range(3):for j in range(5):print("*",end='')print() # print()表示换行
#请用for循环嵌套的方式打印如下图形:*****
**********
for i in range(3):
for j in range(5):
print(“*”,end=‘’)
print() # print()表示换行``
#### 遍历不等长多级容器:```pythoncontainer = [1,2,3,4,("嗄","234",{"马春配","李虎凌","刘子涛"})]
for i in container:# 判断当前元素是否是容器,如果是,进行二次遍历,如果不是,直接打印if isinstance(i,tuple):# ("嗄","234",{"马春配","李虎凌","刘子涛"})for j in i:# 判断当前元素是否是集合,如果是,进行三次遍历,如果不是,直接打印if isinstance(j,set):# j = {"马春配","李虎凌","刘子涛"}for k in j :print(k)else:print(j)# 打印数据else:print(i)
遍历等长的容器:
container = [("马云","小马哥","马春配") , ["王健林","王思聪","王志国"],{"王宝强","马蓉","宋小宝"}]
for a,b,c in container:print(a,b,c)
五、for循环控制循环次数:range()
大家有没有发现,in后直接放一个数据类型来控制循环次数有局限性:
当循环次数过多时,数据类型包含值的格式需要伴随着增加
range功能介绍:
range(10) # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 从0开始有头无尾range(1,10,1) # 1 2 3 4 5 6 7 8 9 设定开始,结束,步长range(1,10,2) # 1 3 5 7 9
range()的补充:python2与python3的不同之处。
_在python2中对range(10)的处理:一个篮子里面装有10个鸡蛋,空间较大。
_
_在python3中对range(10)的优化:一只可以下10个鸡蛋的母鸡,空间较小。
_
那么for和rang可以搭配么:for搭配range,可以按照索引取值,但是不推荐使用
l = ['lsj', 'a', 'c'] # len(l)
for i in range(len(l)):print(i, l[i])
for x in l:print(x)
六、for循环的跳出
for循环的跳出有以下几种:
for 临时变量 in 序列:重复执行的代码......
else:循环正常结束后要执行的代码
所谓else指的是循环正常结束后要执行的代码,即如果是break终止循环的情况。else下方缩进的代码将不执行。
for+break: 同while循环一样,只要运行到break就会立刻中止本层循环
for+else:同while循环一样,只要运行到break就立即终止本次循环
总结:for+break,for+continue,for+else的用法与while相同
下面举几个栗子:
打印乘法口诀表:
打印九九乘法表
# 打印九九乘法表for i in range(1,10):for j in range(1,i+1):print(f"{j} x {i}={i*j:>2}",end=' ')print()![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/cc348ce6153e415cbcb96dbf003f7e53.jpeg#pic_center)_打印金字塔:_```python# 打印金字塔
# 分析
'''
#max_level=5* # current_level=1,空格数=4,*号数=1*** # current_level=2,空格数=3,*号数=3***** # current_level=3,空格数=2,*号数=5******* # current_level=4,空格数=1,*号数=7********* # current_level=5,空格数=0,*号数=9# 数学表达式
空格数=max_level-current_level
*号数=2*current_level-1
'''
# 实现:
max_level=5
for current_level in range(1,max_level+1):for i in range(max_level-current_level):print(' ',end='') #在一行中连续打印多个空格for j in range(2*current_level-1):print('*',end='') #在一行中连续打印多个空格print()
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码免费领取【保证100%免费】
我还整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:可在上方二维码获取↑
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。