【Python】循环结构详解:从基础到高级的迭代控制(下)
目录
🍔 for循环基本语法及其应用
1、for循环基本语法
2、range方法(函数)
3、for循环案例
4、循环中的两大关键字
5、综合案例:使用for循环实现用户名+密码认证
6、for循环嵌套
🍔 while循环与for循环中的else结构
1、为什么需要在while循环中添加else结构
2、while循环中else的基本语法
3、break关键字对while…else结构的影响
4、continue关键字对while…else结构的影响
5、for循环结构中的else结构
6、break关键字对for…else结构的影响
7、continue关键字对for…else结构的影响
🍔 小海龟会画画
1、小海龟模块
2、模块如何使用
3、手绘一条直线
4、使用turtle模块+for循环绘制五角星
🍔 for循环基本语法及其应用
1、for循环基本语法
for循环结构主要用于(序列 => 字符串、列表、元组、集合以及字典)类型数据的遍历(循环)操作。
for循环主要用于序列类型数据的循环操作(遍历操作)
另外当循环次数未知的情况,建议使用for循环。
for 临时变量 in 序列: 重复执行的代码1 重复执行的代码2
案例:使用for循环遍历字符串"itheima"
str1 = 'itheima' for i in str1: print(i)
使用Debug调试以上代码可知:for循环功能非常强大,可以自动判断序列的长度,长度为多少,则for循环就循环多少次。每次循环时,系统会自动将序列中的每个元素赋值给变量i,赋值完成后,for循环内部会自动更新计数器,向后移动一位,继续循环,直至元素全部循环结束。
2、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之间的序列。
案例:for循环与range方法,使用for循环,循环5次
for i in range(5): print(i)
3、for循环案例
案例1:使用for循环,求1 ~ 100的和
# 定义一个变量,用于接收1~100的和 result = 0 # 从1开始循环,循环100次 for i in range(1, 101): result += i print(f'1~100的和为{result}')
案例2:使用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和continue
break:主要功能是终止整个循环
案例:遇到字符'e',则终止整个循环
str1 = 'itheima' for i in str1: if i == 'e': break print(i)
continue:主要功能是中止当前循环,继续下一次循环
案例:遇到字符'e',跳过循环,继续下一次循环
str1 = 'itheima' for i in str1: if i == 'e': continue print(i)
5、综合案例:使用for循环实现用户名+密码认证
案例:用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}次输入机会')
6、for循环嵌套
所谓for循环嵌套,就是一个for循环里面嵌套另外一个for循环的写法。
当循环结构相互嵌套时,位于外层的循环结构常简称为外层循环或外循环,位于内层的循环结构常简称为内层循环或内循环。
基本语法:
# 外层循环 for i in 序列1: # 内层循环 for j in 序列2: 循环体
案例:使用for循环嵌套实现打印九九乘法表
分析:外层循环主要用于控制循环的行数,内层循环用于控制列数
for i in range(1, 10): for j in range(1, i+1): print(f'{j} x {i} = {i * j}', end=' ') # 打印换行符 print('')
🍔 while循环与for循环中的else结构
1、为什么需要在while循环中添加else结构
循环可以和else配合使用,else下方缩进的代码指的是==当循环正常结束之后要执行的代码。==
强调:'正常结束',非正常结束,其else中的代码时不会执行的。(如遇到break的情况)
2、while循环中else的基本语法
需求:女朋友生气了,要惩罚:连续说5遍“老婆大人,我错了”,如果道歉正常完毕后女朋友就原谅我了,这个程序怎么写?
# 初始化计数器 i = 0 # 编写循环条件 while i < 5: print('老婆大人,我错了') # 更新计数器 i += 1 # 循环结束后,女朋友就原谅我了 print('好开森,女朋友原谅我了...')
思考: 这个print是不是没有循环也能执行?那我们应该如何解决呢?
答:使用while…else结构
# 初始化计数器 i = 0 # 编写循环条件 while i < 5: print('老婆大人,我错了') # 更新计数器 i += 1 # 循环结束后,女朋友就原谅我了 else: print('好开森,女朋友原谅我了...')
3、break关键字对while…else结构的影响
需求:女朋友生气,要求道歉5遍:老婆大人,我错了。道歉到第三遍的时候,媳妇埋怨这一遍说的不真诚,是不是就是要退出循环了?这个退出有两种可能性:
① 更生气,不打算原谅,也不需要道歉了,程序如何书写?
② 只一遍不真诚,可以忍受,继续下一遍道歉,程序如何书写?
# 初始化计数器 i = 0 # 编写循环条件 while i < 5: if i == 2: print('这遍说的不够真诚') break print('老婆大人,我错了') # 更新计数器 i += 1 # 循环结束后,女朋友就原谅我了 else: print('好开森,女朋友原谅我了...')
由运行结果可知,如果我们在while循环中,使用了break,一旦break语句执行了,则else语句则不会输出。
4、continue关键字对while…else结构的影响
# 初始化计数器 i = 0 # 编写循环条件 while i < 5: if i == 2: i += 1 print('这遍说的不够真诚') continue print('老婆大人,我错了') # 更新计数器 i += 1 # 循环结束后,女朋友就原谅我了 else: print('好开森,女朋友原谅我了...')
5、for循环结构中的else结构
基本语法:
for 临时变量 in 序列: 循环体 else: 当for循环正常结束后,返回的代码
6、break关键字对for…else结构的影响
str1 = 'itheima' for i in str1: if i == 'e': print('遇e不打印') break print(i) else: print('循环正常结束之后执行的代码')
7、continue关键字对for…else结构的影响
str1 = 'itheima' for i in str1: if i == 'e': print('遇e不打印') continue print(i) else: print('循环正常结束之后执行的代码')
🍔 小海龟会画画
1、小海龟模块
在Python3版本中,新增加了一个模块叫做turtle(海龟),专门用于绘制图形图像
2、模块如何使用
① 导入模块 import turtle ② 使用turtle模块中已经定义好的方法 turtle.forward(数值) # 从左向右,绘制一条指定长度的横线(像素) 1980 * 1024
3、手绘一条直线
import turtle import time # 绘制一条100像素的横线 turtle.forward(100) # 休眠10s time.sleep(10)
4、使用turtle模块+for循环绘制五角星
import turtle import time # 循环5次 turtle.pencolor('red') for i in range(5): turtle.forward(100) turtle.right(144) time.sleep(10)
扩展:海龟绘图 | Python123Python123 是面向新工科教学需求的计算机类基础课程教学辅助平台。支持全国计算机二级 python 考试自学与备考,还向合作教师与高校提供精品教学资源、全系列课程内容、全流程教学工具,支撑课程教学管理、练习、考试、教学研究等实际需求,为国家级、省部级一流课程提供教学研究数据支撑。https://www.python123.io/index/turtles/latest
💘若能为您的学习之旅添一丝光亮,不胜荣幸💘
🐼期待您的宝贵意见,让我们共同进步共同成长🐼
作者:小言从不摸鱼