for循环结构主要用于 (‘序列’ : 字符串, 列表, 元组, 集合以及字典) 类型数据的遍历 (循环) 操作.
for循环主要用于序列类型数据的循环操作 (遍历操作).
另外, 当循环次数未知的情况, 建议使用for循环.
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
str1 = 'itheima'
for i in str1:
print(i)
使用Debug调试以上代码可知: for循环功能非常强大, 可以自动判断序列的长度, 长度为多少, 则for循环就循环多少次. 每次循环时, 系统会自动将序列中的每个元素赋值给变量i, 赋值完成后, for循环内部会自动更新计数器, 向后移动一位, 继续循环, 直至元素全部循环结束.
Python2中, range() 函数返回的是列表, 而Python3中 range() 函数返回的是一个可迭代对象 (类型是对象) , 而不是列表类型, 所以打印的时候不会打印列表. (为了方便大家理解, 可以简单的将其理解为一个序列结构)
主要作用: 用于生成一段连续的数字.
range(stop)
range(start, stop[, step])
start: 计数从 start 开始. 默认是从 0 开始. 例如range (5) 等价于range (0, 5);
stop: 计数到 stop 结束, 但不包括 stop. 例如: range (0, 5) 是 [0, 1, 2, 3, 4]没有5
step: 步长, 默认为1. 例如: range (0, 5) 等价于 range(0, 5, 1)
for i in range(5):
print(i)
# 1. 定义一个变量, 用于接收1 ~ 100之间所有偶数的和.
result = 0
# 2. 从1开始循环, 循环100次.
for i in range(1, 101):
# 3. 判断是否是偶数, 如果是, 就求和.
if i % 2 == 0:
# 4. 循环累加变量.
result += i
# 4. 打印求和结果.
print(f'1 ~ 100之间所有偶数的和为{result}')
使用for循环实现用户登录:
# 1. 定义变量, 记录正确的账号和密码.
username = 'admin'
password = 'admin888'
# 2. 因为只给3次机会, 所以用 for 循环.
for i in range(3): # i的值: 0, 1, 2, 剩余的机会分别是: 2, 1, 0
# 3. 接受用户录入的账号 和 密码.
uname = input('请录入您的账号: ')
pwd = input('请录入您的密码: ')
# 4. 判断是否登陆成功, 并提示.
if uname == username and pwd == password :
# 5. 如果登录成功, 则: 程序结束.
print('登陆成功, 欢迎您!')
# 6. 跳出循环
break
else:
# 6. 如果登录失败, 则: 判断是否还有登录机会.
# 格式1: if 写法
if i == 2:
# 7. 如果没有机会, 则: 提示账号锁定, 程序结束.
print('账号锁定, 程序结束')
else:
# 8. 如果还有机会, 则: 提示剩余次数, 并重新录入.
print(f'密码错误, 还剩{2 - i}次机会')
# 格式2: 三元运算符.
print(f'欢迎您, {name}')
break
else:
print('录入有误, 账号已锁定, 请联系管理员!' if i == 2 else f'录入有误, 请重新录入, 您还有{2 - i}次机会'
for循环可以和else配合使用, else下方缩进的代码指的是当循环正常结束之后要执行的代码强调: ‘正常结束’,
若非正常结束, 其else中的代码不会执行的. (如遇到break的情况)
如果循环是正常退出(即: 不是break方式), 则会执行else中的内容.
即: 循环break退出, 不执行else, 不是break方式退出,会执行 else
for 临时变量 in 序列:
循环体
else:
当for循环正常结束后, 返回的代码
str1 = 'itheima'
for i in str1:
if i == 'e':
print('遇e不打印')
break
print(i) # i
else: # t
print('循环正常结束之后执行的代码') # h
# 遇e不打印
str1 = 'itheima' # i
for i in str1: # t
if i == 'e': # h
print('遇e不打印') # 遇e不打印
continue # i
print(i) # m
else: # a
print('循环正常结束之后执行的代码')
Q1:for循环的语法是什么?
for 临时变量 in 序列
,后面跟着循环体.Q2:for循环的执行流程是怎样的?
Q3:for循环中的else结构的作用是什么?
Q4:break关键词对for…else结构有什么影响?
Q5:continue关键词对for…else结构有什么影响?