009.Python基础语法_循环语句

本文详细介绍了Python中的循环结构(while,for循环),包括循环的基本概念、分类、while和for语句、range函数、循环终止语句(break和continue)、分支嵌套以及pass语句的使用。此外,还通过实例展示了如何避免死循环和控制循环流程。
摘要由CSDN通过智能技术生成

在这里插入图片描述

我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈
虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈
PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)文章合集 👈👈
Oracle数据库教程:👉👉 Oracle数据库文章合集 👈👈
优 质 资 源 下 载 :👉👉 资源下载合集 👈👈

在这里插入图片描述

循环的概念

  • 概念:周而复始,重复性的做某些事(执行某些代码)

循环的分类

  • 分类
    • 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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值