我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈
Python基础语法_循环语句
循环的概念
- 概念:周而复始,重复性的做某些事(执行某些代码)
循环的分类
- 分类
- while循环
- for循环
while循环
while语句
- 语法
while 条件: 条件满足时,执行代码 ......
- 图例
- 示例
while i < 10: print('人生苦短,我用python') i += 1
while…else语句
- 语法
while 条件: 条件满足时,执行代码 else: 条件不满足时,执行代码
- 图例
- 示例
while num < 10: print('人生苦短,我用python') num += 1 else: print('条件不满足,执行else语句')
while死循环
- 语法
while True: 执行语句
- 该循环语句中,条件一直为True,所以会一直循环执行
注意事项
* 一定要注意循环结束条件,防止死循环
* 在python中,没有类似于其他语言的do...while循环语句
For循环
- 概念
- for循环相比while循环而言,for循环在循环取值(遍历)方面更简洁
- 遍历:就是把一个类型里的数据,一个个循环取出来,第一次循环取第一个,第二次循环取第二个…
for语句
- 语法
for 变量 in 可迭代对象: 循环体代码 # 取出可迭代对象中的每一个元素,赋值给变量 # 在循环体中可以通过变量使用可迭代对象中的元素 # 当可迭代对象中的元素遍历完成,循环也就结束了 # for循环的循环次数,取决于可迭代对象的元素个数
for…else语句
- 语法
for 变量 in 可迭代对象: 循环体代码 else: 循环正常结束后执行代码块 # else部分是遍历循环正常结束时执行的代码块,如果循环体中使用了break终止循环语句,则不会执行eles部分的代码块
range函数
- 用于生成一系列连续的整数
- 语法:
range(stop) range(start, stop [, step]) 参数说明: start:起始值 stop:结束值 step:步进值 返回值: 返回range对象,不包括结束值
- python2和python3中range的区别
- python2中是直接生成一个包含指定元素个数的整数列表,占用内存控件
- python3中是创建一个迭代器对象,每次循环调用迭代器的时候才生成一个元素,节约内存控件
- range函数的特性是顾头不顾尾
- 生成的结果包含start(起始值),但不包含stop(结束值)
- 示例1
for i in range(10): print(i) # -----输出结果----- 0 1 2 3 4 5 6 7 8 9 # 从输出结果可以看出来,range函数是生成的值默认是从0开始的,并不包含结束值
- 示例2
for i in range(1, 5): print(i) # -----输出结果----- 1 2 3 4 # range函数可以指定开始值和结束值,生成包含开始值但不包含结束值的一系列整数
- 示例3
for i in range(1, 10, 2): print(i) # -----输出结果----- 1 3 5 7 9 # 指定步长,每次生成的值都是上一个值+步长,超出结束值部分不会生成
- 示例4
# 打印偶数 for i in range(1, 10): if i % 2 == 0: print(i) # -----输出结果----- 2 4 6 8
循环终止语句
break语句
- break:终止本层循环(如果有嵌套循环,只会结束break所在层的循环)
- break语句终止循环示例
# 单层循环,break直接终止本层循环,不再执行breack后面的代码 userName = 'fengzi' userPwd = '123456' while True: input_userName = input('请输入用户名:') input_userPwd = input('请输入密码:') if input_userName == userName and input_userPwd == userPwd: print('登录成功!') break else: print('账号或密码错误,请重新输入') print('if判断下面的代码块!') # -----输出结果----- 请输入用户名:fengzi 请输入密码:123456 登录成功! # 从输出结果可以看到,登录成功之后,直接break终止了循环,并没有执行if后面的语句了
- break终止多层嵌套循环
while True: input_userName = input('请输入用户名:') input_userPwd = input('请输入密码:') if input_userName == userName and input_userPwd == userPwd: print('登录成功!') while True: oper = input('请输入你的操作:') print('你正在', oper) break else: print('账号或密码错误,请重新输入') print('if判断下面的代码块!') # -----输出结果----- 请输入用户名:fengzi 请输入密码:123456 登录成功! 请输入你的操作:打豆豆 你正在 打豆豆 请输入你的操作:吃饭 你正在 吃饭 请输入你的操作:睡觉 你正在 睡觉 请输入你的操作: . . . # 从输出结果可以看到,当账号密码正确之后,输出登录成功,然后进入内层的while循环 # 由于内层嵌套的while循环并没有结束条件,所以直接进入了死循环,外层的break语句并不影响内层的循环 # 那么,我们对内层嵌套的while循环,也添加一个break语句 while True: input_userName = input('请输入用户名:') input_userPwd = input('请输入密码:') if input_userName == userName and input_userPwd == userPwd: print('登录成功!') while True: oper = input('请输入你的操作:') if oper == 'Q': break print('你正在', oper) break else: print('账号或密码错误,请重新输入') print('if判断下面的代码块!') # -----输出结果----- 请输入用户名:fengzi 请输入密码:123456 登录成功! 请输入你的操作:吃饭 你正在 吃饭 请输入你的操作:睡觉 你正在 睡觉 请输入你的操作:打豆豆 你正在 打豆豆 请输入你的操作:Q Process finished with exit code 0 # 从输出结果可以看出来,当用户名和密码正确之后,执行内存循环,当输入Q的时候,执行内部break语句,结束内层嵌套循环,然后再执行内层循环下面的break语句结束外层while循环
continue语句
- continue:结束本次循环,继续执行下一次循环
- 通过条件标识符结束循环示例
# 条件控制结束循环,会执行修改条件语句后面部分代码 userName = 'fengzi' userPwd = '123456' condition = True while condition: input_userName = input('请输入用户名:') input_userPwd = input('请输入密码:') if input_userName == userName and input_userPwd == userPwd: print('登录成功!') condition = False else: print('账号或密码错误,请重新输入') print('if判断下面的代码块!') # -----输出结果----- 请输入用户名:fengzi 请输入密码:123456 登录成功! if判断下面的代码块! # 从输出结果可以看到,在登录成功之后,还执行了if判断之后的部分代码,并没有立即结束循环
- continue 结束本次循环示例
# 要求:循环打印1 ~ 10,其中5不打印 num = 0 while num < 10: num += 1 if num == 5: continue print('num', num) # -----输出结果----- num 1 num 2 num 3 num 4 num 6 num 7 num 8 num 9 num 10 # 从输出结果可以看到满足了题目需求,但是如果我们的 num += 1的位置放到了continue后面,那么这个就会变成死循环 # 因为执行到continue语句之后,后面的语句就直接跳过了,不会再执行num += 1了,此时num的值为5,条件会一直处于True状态,所以就变成了死循环 num = 0 while num < 10: if num == 5: print(num) continue num += 1 print('num', num)
- break & continue综合案例
# 做─个简单的加法计算器,让用户输入两个数值,输出对应的和 # 用户如果不退出这个程序,则输出完毕之后,继续让用户使用 # 如果用户输入q,则退出整个程序 # 如果中间用户输入的数据超过100,则给出错误提示,并从头开始,让用户数据数值 while True: num1 = float(input('请输入第一个值:')) num2 = float(input('请输入第二个值:')) if num1 > 100 or num2 > 100: print('输入的数值超出范围,请重新输入!') continue result = num1 + num2 print(result) isq = input('是否退出程序(q:退出):') if isq == 'q': break
循环 & 分支嵌套
- 循环嵌套分支
- 语法
# while循环嵌套if分支 while 条件: if 条件: if条件满足,执行代码块 else: if条件不满足,执行代码块 # for循环嵌套if分支 for 变量 in 可迭代对象: if 条件: if条件满足,执行代码块 else: if条件不满足,执行代码块
- 循环嵌套循环
- 语法
# while嵌套while while 条件1: while 条件2: 条件2为真,执行代码块 # for嵌套for for 变量1 in 可迭代对象1: for 变量2 in 可迭代对象2: 遍历执行代码块
- 循环&分支嵌套案例
- 循环嵌套分支
while True: num1 = float(input('请输入第一个值:')) num2 = float(input('请输入第二个值:')) if num1 > 100 or num2 > 100: print('输入的数值超出范围,请重新输入!') continue result = num1 + num2 print(result) isq = input('是否退出程序(q:退出):') if isq == 'q': break
- 循环嵌套循环(经典99乘法表)
for i in range(1, 10): for j in range(1, i + 1): print(f'{i} * {j} = {i*j}', end='\t') print('') # -----输出结果----- 1 * 1 = 1 2 * 1 = 2 2 * 2 = 4 3 * 1 = 3 3 * 2 = 6 3 * 3 = 9 4 * 1 = 4 4 * 2 = 8 4 * 3 = 12 4 * 4 = 16 5 * 1 = 5 5 * 2 = 10 5 * 3 = 15 5 * 4 = 20 5 * 5 = 25 6 * 1 = 6 6 * 2 = 12 6 * 3 = 18 6 * 4 = 24 6 * 5 = 30 6 * 6 = 36 7 * 1 = 7 7 * 2 = 14 7 * 3 = 21 7 * 4 = 28 7 * 5 = 35 7 * 6 = 42 7 * 7 = 49 8 * 1 = 8 8 * 2 = 16 8 * 3 = 24 8 * 4 = 32 8 * 5 = 40 8 * 6 = 48 8 * 7 = 56 8 * 8 = 64 9 * 1 = 9 9 * 2 = 18 9 * 3 = 27 9 * 4 = 36 9 * 5 = 45 9 * 6 = 54 9 * 7 = 63 9 * 8 = 72 9 * 9 = 81
pass语句
- 概念
- pass是空语句,不做任何事情,一般用作占位语句
- 作用
- 是为了保证程序结构的完整性
- 语法
pass