一、for循环
1、for循环是Python中的第二种循环机制
理论上for循环能做的事情,while循环都可以做,用for循环是因为在(遍历取值)上比while循环更简洁。
2、for循环的语法
语法:
for 变量名 in 可迭代对象: (可迭代对象可以是:列表、字典、字符串、元组、集合)
代码1
代码2
代码3
二、与while循环对比
需求:读取列表值并打印出来
点击打开 示例
# 例1:循环列表取值
# 简单版:
l = ['v1_xx', 'v2_xx', 'v3_xxx', 'v4_xxx']
for x in l:
print(x)
# 简单版 输出结果
# v1_xx
# v2_xx
# v3_xxx
# v4_xxx
# ========================================
# 复杂版:
l1 = ['v1_xx', 'v2_xx', 'v3_xxx', 'v4_xxx']
i = 0
while i < 4:
print(l1[i])
i += 1
# 复杂版输出
# v1_xx
# v2_xx
# v3_xxx
# v4_xxx
# =======================================
'例2:循环字典取值'
# 简单版:
dic = {'k1': 1111, 'k2': 2222, 'k3': 3333}
for k in dic:
print(k, dic[k])
# 结果输出
# k1 1111
# k2 2222
# k3 3333
# 复杂版:while循环可以遍历字典过于麻烦,不推荐使用
# ==================================
'案例3: 字符循环取值'
# 简单版
msg = "you er message"
for x in msg:
print(x)
# 结果输出
# y
# o
# u
#
# e
# r
#
# m
# e
# s
# s
# a
# g
# e
1、相同之出:都是循环,for循环可以做的,while也循环也可以做。
2、不同之处:while循环为条件循环,循环次数取决于条件何时变假;
for循环为“取值循环”,循环次数取决与in后包含值的个数;
三 、for 循环的循环次数
for x in 'abc': # 这里的值是三个,那么下面的代码会循环3次
inp_name = input('请输入你的账号:')
inp_pwd = input('请输入你密码:')
但这种方式存在是有缺陷的,我们可以用Python的Range来产生值控制循环次数。
-
for 循环之 range功能
range功能就是按照安置定制造出值来
for i in range(10) # 类似于造出了一个[0,1,2,3,4,5,6,7,8,9]的列表取值0到9,共10个元素,顾头不顾尾!
print(i) #输出结果 0 ...5....9
-
for 循环之结束循环
for + break:同while循环一样
for + else: 同while循环一样
for + while + break + else 示例
username = 'hyjkk'
password = '123456'
for i in range(3): #3次循环条件
inp_name = input('请输入你的账号:')
inp_pwd = input('请输入你的密码:')
if inp_name == username and inp_pwd == password:
print('登录成功')
while True:
cmd = input("需要执行的命令")
if cmd == 'exit': # 退出整个程序,循环结束
print('程序退出')
break # 结束内部while循环
else:
print('代码{xxx}正在运行'.format(xxx=cmd))
break # 内部循环结束后,运行到这行,结束主循环
else:
print('账号或密码错误')
else: # 判断条件3次循环结束后,运行。
print("3次错误,请一小时后再试")
以上代码 在账号密码输错3次后会通过range(3)三次限制结束循环,并通过else提示输错三次错误。
四、补充
1、for搭配range,可以按照索引取值,但是需要自己去数元素的索引数量。
可以搭配 len() 关键字来实现 自动遍历。
点击看 示例
l=['aaa','bbb','ccc'] # len()窍门
for i in range(len(l)):
print(i,l[i])
# 输出结果
aaa
bbb
ccc
2、Python 3 以后对range做了优化;
原理:
不再像以前的版本把设置好的值,制造好了以后放到容器里。Python 3 以后的版本是需要多少值就制造多少直接给你,提升了内存使用效率。
五、for + continue 的应用
比while循环要简洁一点
点击看 示例
for i in range(6): # 不管情况如何 这里只循环6次
if i == 4: # i等于4时,执行continue。
continue
print(i)
# 输出结果
# 0
# 1
# 2
# 3
# 5
六、for 循环嵌套
for循环嵌套;外层循环一次,内层需要循环完成,再循环外层的次数。
点击看 示例
for i in range(3):
print('外层',i)
for j in range(5):
print('内存',j)
'# 输出结果'
# 外层 0
# 内存 0
# 内存 1
# 内存 2
# 内存 3
# 内存 4
# 外层 1
# 内存 0
# 内存 1
# 内存 2
# 内存 3
# 内存 4
# 外层 2
# 内存 0
# 内存 1
# 内存 2
# 内存 3
# 内存 4
补充:终止for循环只有break一种方案!!!