一、什么是循环
循环顾名思义,就是重复的做一件事。
例如:7点起床,刷牙洗脸。8点出门,赶地铁。9点到单位打卡上班 。下午5点打开下班。这就是一天的工作,第二天又是如此。这一天就是一个循环,并且是有条件的做一些相同的事情。
二、循环的种类
在Python中,循环分为两大类:while循环与for循环
思考:while循环和for循环如何选择呢?
1. 对于循环次数已知的情况,建议使用while循环
2. 对于循环次数未知的情况,建议使用for循环
三、while循环
基本语法
# 1. 定义一个计数器(初始化一个计数器)
i = 0 # 这是一个起始
#2. 编写while循环结构
while 循环条件(判断 计数器 是否达到了目标位置):
循环体代码,可以是多行
...
# 3.在循环内部更新计数器
i = i + 1 # i += 1
while循环例子
从0加到100
# 第一步:初始化计数器
i = 1
# 第四步:定义一个result变量,用于接收累加后的结果
result = 0
# 第二步:编写循环条件
while i <= 100:
# 第五步:循环累加变量i
result += i
# 第三步:更新计数器的值
i += 1
print(f'1~100累加后的结果:{result}')
while循环的执行流程
① 代码都是顺序执行,首先执行到第2行,对变量i进行赋值操作,初始值为0
② 当程序遇到while循环时,首先要把我们的计数器与循环条件进行比较i < 100,如果条件成立,则进入循环内部,执行内部代码。
③ 在循环体内部,针对本次循环进行计数器更新操作 i = i + 1或 i += 1
④ 更新完毕后,把更新后的计数器与循环条件再次进行比较i < 100,如果条件成立,继续进入循环内部,执行内部代码。
…
⑤ 直到,i更新后结果为100时,再次进行循环条件判断,发现不满足,则整个while循环结束。
四、循环两大关键词
在Python循环中,经常会遇到两个常见的关键词:
break:代表终止整个循环结构;continue:代表中止当前本次循环,继续下一次循环。
break关键字
场景一:如果吃的过程中,吃完第三个吃饱了,则不需要再吃第4个和第5个苹果,即是吃苹果的动作停止,这里就是break控制循环流程,即终止此循环。
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
# 当变量i == 4的时候,终止循环
if i == 4:
print('我已经吃饱了,实在吃不下了...')
break
# 正在吃第几个苹果
print(f'正在吃第{i}个苹果')
# 更新计数器
i += 1
continue关键字
场景二:如果吃的过程中,吃到第三个吃出一个大虫子…,是不是这个苹果就不吃了,开始吃第四个苹果,这里就是continue控制循环流程,即退出当前一次循环继而执行下一次循环代码。
# 初始化计数器
i = 1
# 编写循环条件
while i <= 5:
# 当变量i == 3的时候,中止当前循环,继续下一次循环
if i == 3:
# 手工更新计数器(非常重要)
i += 1
print('吃到了一只大虫子,这个苹果不吃了...')
continue
print(f'正在吃第{i}个苹果')
# 更新计数器
i += 1
五、死循环
在编程中一个靠自身控制无法终止的程序称为“死循环”。
在Python中,我们也可以使用while True来模拟死循环:
while True:
print('这里的代码,一直停不下来')
六、for循环
基本语法
for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作。
for循环主要用于序列类型数据的循环操作(遍历操作)
另外当循环次数未知的情况,建议使用for循环。
for 临时变量 in 序列:
重复执行的代码1
重复执行的代码2
例子:使用for循环遍历字符串”python”
str = 'python'
for s in str:
print(s)
for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。每次循环时,系统会自动将序列中的每个元素赋值给变量i,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。
range方法(函数)
Python2 range() 函数返回的是列表,而在Python3中 range() 函数返回的是一个可迭代对象(类型是对象),而不是列表类型, 所以打印的时候不会打印列表。(由于我们还未学习面向对象,为了方便大家理解,你可以简单的将其理解为一个序列结构)
主要作用:用于生成一段连续的内容,从0到9
基本语法:
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)
range有一个口诀:只顾头不顾尾,包含头部信息,但是不包含尾部信息,如range(10),则返回0~9之间的序列,又比如range(0, 5)代表返回0 ~ 4之间的序列。
例子1:for循环与range方法,使用for循环,循环5次
for i in range(5):
print(i)
例子2:使用for循环,求1 ~ 100的和
# 定义一个变量,用于接收1~100的和
result = 0
# 从1开始循环,循环100次
for i in range(1, 101):
result += i
print(f'1~100的和为{result}')
例子3:使用for循环,求1 ~ 100之间所有偶数的和
# 定义一个变量,用于接收1~100之间所有偶数的和
result = 0
# 从1开始循环,循环100次
for i in range(1, 101):
if i % 2 == 0:
result += i
print(f'1~100之间所有偶数的和为{result}')
例子4:break:主要功能是终止整个循环;遇到字符‘t’,则终止整个循环
str = 'python'
for s in str:
if s == 't':
break
print(i)
例子5:continue:主要功能是中止当前循环,继续下一次循环;遇到字符’t’,跳过循环,继续下一次循环
str = 'python'
for s in str:
if s == 't':
continue
print(i)
例子6:使用for循环实现用户名+密码认证
① 输入用户名和密码
② 判断用户名和密码是否正确(username=’admin’,password=’admin888’)
③ 登录仅有三次机会,超过3次会报错
分析:用户登陆情况有3种:
① 用户名错误(此时便无需判断密码是否正确) — 登陆失败
② 用户名正确 密码错误 –登陆失败
③ 用户名正确 密码正确 –登陆成功
# 定义变量,用于记录登录次数
trycount = 0
# 循环3次,因为超过3次就会报错
for i in range(3):
# 更新登录次数
trycount += 1
# 提示用户输入账号与密码
username = input('请输入您的登录账号:')
password = input('请输入您的登录密码:')
# 判断用户名是否正确
if username == 'admin':
# 判断密码是否正确
if password == 'admin888':
print('恭喜你,登录成功')
break
else:
print('密码错误')
print(f'您还有{3 - trycount}次输入机会')
else:
print('用户名错误')
print(f'您还有{3 - trycount}次输入机会')
七、for循环中的else结构
循环可以和else配合使用,else下方缩进的代码指的是当循环正常结束之后要执行的代码。
强调:‘正常结束’,非正常结束,其else中的代码时不会执行的。(如遇到break的情况)
for循环结构中的else结构
基本语法:
for 临时变量 in 序列:
循环体
else:
当for循环正常结束后,返回的代码
break关键字对for…else结构的影响
str = 'python'
for s in str:
if s == 't':
print('遇t不打印')
break
print(i)
else:
print('循环正常结束之后执行的代码')
continue关键字对for...else结构的影响
str = 'python'
for s in str:
if s == 'e':
print('遇e不打印')
continue
print(i)
else:
print('循环正常结束之后执行的代码')
原文始发于微信公众号(Python之家):Python基础-7-循环
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/198545.html