• 6.1_3 Python3.x入门 P3 【基础】流程语句【循环结构】


    相关链接


    简介

    """
     @author GroupiesM
     @date 2022/4/27 15:44
     @introduction
    """
     任何简单或复杂的算法都可以由顺序结构、选择结构、循环结构组合而成
         顺序结构(默认就是顺序结构)
         选择结构:if语句
         循环结构:while语句,for-in语句
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    一、顺序结构(略)

    """
     @author GroupiesM
     @date 2022/4/27 16:05
     @introduction 
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5

    二、选择结构

    2.1 if、elif、else选择结构

    """
     @author GroupiesM
     @date 2022/4/27 16:05
     @introduction
    
         if 条件表达式:
            条件执行体
        else
    """
    money = 1000;  # 余额
    tips = "当前余额为 " + str(money) + " 元,请输入取款金额:"
    get = int(input(tips))  # 取款金额
    b = True
    # 判断余额是否充足
    if get < 0:
        print("取款金额不能为负")
    elif get < money:
        print("取款成功,余额为" + str(money - get), "元。")
    else:
        print("余额不足。")
    """
    当前余额为 1000 元,请输入取款金额:-5
    取款金额不能为负
    取款成功,余额为1005 元。
    """
    """
    当前余额为 1000 元,请输入取款金额:123
    取款成功,余额为877 元。
    """
    """
    当前余额为 1000 元,请输入取款金额:1234
    余额不足。
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33

    2.2 选择结构嵌套

    """
     @author GroupiesM
     @date 2022/4/27 16:26
     @introduction
     业务逻辑:如果是会员,大于200打1折,100-200打5折,低于100不打折
             如果不是会员,大于200打9折,低于200不打折
    """
    
    isMember = input("是会员吗?y/n:")
    if isMember not in ('y','n'):
        print("输入错误")
        quit()
    
    money = int(input("购物金额:"))
    if isMember == 'y':
        if money > 200:
            money *= 0.1
        elif money > 100 & money < 200 :
            money *= 0.5
    if isMember == 'n':
        if money > 200:
            money *= 0.9
    
    print("实际付款金额为:",str(money))
    """
    是会员吗?y/n:y
    购物金额:2000
    付款金额为: 200.0
    """
    """
    是会员吗?y/n:n
    购物金额:150
    实际付款金额为: 150
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34

    三、条件表达式(三元运算符)

    """
     @author GroupiesM
     @date 2022/4/27 16:39
     @introduction 模拟用户登录
    
     条件表达式类似于Java中使用的三元运算符,仅有if、else两种结果,不支持其他elif分支条件
    """
    
    uname = input("用户名:")
    pwd = input("密码:")
    
    # 选择结构
    if uname == "Groupies" and pwd =="123":
        print("欢迎登陆!")
    else:
        print("用户名或密码输入错误!")
    
    print('-----')
    
    # 条件表达式
    print("欢迎登陆!" if uname == "stenven" and pwd =="123" else "用户名或密码输入错误!")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    四、循环结构

    4.1 rang() 循环 - 生成list

    """
     @author GroupiesM
     @date 2022/4/27 16:55
     @introduction
        用于创建一个整数序列
        创建range对象的三种方式
            1)range(stop):创建[0,stop)之间的整数序列,步长为1
            2)range(start,stop):创建[start,stop)之间的整数序列,步长为1
            3)range(start,stop,step):创建[start,stop)之间的整数序列,步长为step
        返回一个迭代器对象
        range优点:不管range对象表示的整数序列有多长,所有range对象占用的内存空间都是相同的,
                因为仅仅需要存储start,stop和step,只有当用到时才会计算
        int与not in判断是否存在指定整数
    """
    """range(stop)"""
    r = range(10)
    l = list(r)  # 用于查看range对象中的整数序列
    print(l)  # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    
    """range(start,stop,step)"""
    r = range(1, 50, 5)
    l = list(r)
    print(l)  # [1, 6, 11, 16, 21, 26, 31, 36, 41, 46]
    
    """int与not in判断是否存在指定整数"""
    print(6 in r) # True
    print(6 in l) # True
    print(8 in r) # False
    print(6 not in l) # False
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29

    4.2 while循环

    """
     @author GroupiesM
     @date 2022/4/27 17:08
     @introduction
        循环分类 while    for-in
        语法:
            while 条件表达式:
                条件执行体(循环体)
    
        选择结构的if与循环while的区别:
            if判断一次,条件True执行一次
            while判断n+1次,条件为True执行n次
    """
    a: int = 1
    
    while a < 5:
        print(a) # 1 2 3 4
        a += 1
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    4.3 for循环

    """
     @author GroupiesM
     @date 2022/4/27 17:16
     @introduction
        for-in循环:
            in表达从(字符串、序列等)中依次取值,又称为遍历
            for-in便利的对象必须是可迭代对象
    
        for-in语法结构:
            for 自定义的变量 in 可迭代对象:
                循环体
    
        【可迭代对象】:字符串、序列等
    
        循环体内不需要访问自定义变量,可以将自定义变量替代为下划线
    """
    print("-------for-in String--------")
    for i in "python":
        print(i)
    """
    p
    y
    t
    h
    o
    n
    """
    print("-------for-in range()--------")
    for i in range(2, 5, 1):
        print(i)
    """
    2
    3
    4
    """
    print("-------for-in nothing--------")
    for i in range(3):
        print("hello world")
    """
    hello world
    hello world
    hello world
    """
    print("-------for-in 1-100偶数求和--------")
    sum = 0;
    for i in range(101):
        if i % 2 == 0:
            sum += i
    print(sum)
    """2550"""
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50

    五、pass、break、continue


    5.1 pass 跳过

    • 适用于:选择结构、循环结构
    """
     @author GroupiesM
     @date 2022/4/27 16:44
     @introduction
        pass语句:什么都不做,只是一个占位符,用在语法上需要语句的地方
                 并不会跳过,pass语句前面、后面的执行逻辑
        when:先搭建语法结构,还没想好代码怎么写
        where:1)if的条件执行体、2)for-in的循环体、3)函数的函数体
    """
    
    answer = input("是会员吗?y/n")
    if answer == 'y':
        print("123")
        pass
        print("321")
    else:
        pass	# 这里如果什么都不写是不能通过编译的
    """
    是会员吗?y/n y
    123
    321
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22

    5.2 break 跳出循环

    5.2.1 while - break

    • 适用于:循环结构
    """
     @author GroupiesM
     @date 2022/4/27 17:34
     @introduction
         break语句:用于结束循环结构,通常与分支结构if一起使用
    """
    
    # 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
    password = "python"
    i = 0;
    
    while i < 3:
        if input("请输入密码:\n") == "python":
            print("密码正确,登陆成功")
            break
        elif i != 2:
            print("密码错误,剩余尝试次数:", 2 - i)
            i += 1
        else:
            print("密码错误,账户已锁定")
            break
    """
    请输入密码:
    python
    密码正确,登陆成功
    """
    """
    请输入密码:
    1
    密码错误,剩余尝试次数: 2
    请输入密码:
    2
    密码错误,剩余尝试次数: 1
    请输入密码:
    3
    密码错误,账户已锁定
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37

    5.2.2 for - break

    """
     @author GroupiesM
     @date 2022/4/27 17:25
     @introduction
        break语句:用于结束循环结构,通常与分支结构if一起使用
    """
    # 键盘输入密码,最多3次,如果正确,提示登录成功,超过3次提示账户已锁定
    password = "python"
    
    for i in range(3):
        if input("请输入密码:\n") == "python":
            print("密码正确,登陆成功")
            break
        elif i != 2:
            print("密码错误,剩余尝试次数:", 2 - i)
        else:
            print("密码错误,账户已锁定")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    5.2.3 嵌套循环 - break (九九乘法表)

    """
     @author GroupiesM
     @date 2022/4/27 17:51
     @introduction
    """
    '''实现99乘法表'''
    for i in range(0, 10, 1):
        for j in range(1, i + 1, 1):
            if j > i:
                break
            print(str(i), "*", str(j), "=", str(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	
    '''
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23

    5.3 continue 进入下一次循环

    • 适用于:循环结构

    5.3.1 while - continue

    """
     @author GroupiesM
     @date 2022/4/27 17:36
     @introduction
        continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
    """
    '''输出1-20之间所有5的倍数'''
    i: int = 1;
    
    while i < 20:
        i += 1
        if i % 5 != 0: continue
        print(i)
    """
    5
    10
    15
    20
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    5.3.2 for - continue

    """
     @author GroupiesM
     @date 2022/4/27 17:37
     @introduction
        continue语句:用于结束当前循环,进入下一次循环,通常预分支if一起使用
    """
    '''输出1-20之间所有5的倍数'''
    i: int = 1;
    
    for i in range(20):
        if i % 5 != 0: continue
        print(i)
    """
    5
    10
    15
    20
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    5.3.3 嵌套循环 - continue

    """
     @author GroupiesM
     @date 2022/4/28 09:14
     @introduction
        嵌套循环中的break和continue只用于控制本层循环
        else -> if ... else
             -> while ... else
             -> for ... else
    """
    for i in range(1, 5):
        if (i % 2 == 0):
            continue
        else:
            print(i)
    else:
        print("abc")
    """
    1
    3
    abc
    """
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21

    22/06/27

    M

  • 相关阅读:
    MySQL的字符集设置
    适配器模式在微服务的巧妙应用
    算法基础——求每对结点之间的最短路径
    苹果平板HOME键成历史,全面屏时代到来?2024平板电脑市场趋势分析
    PC调试手机微信浏览器
    台灯哪个牌子的比较好保护视力的?盘点五款护眼台灯排行榜
    IAR+vscode开发环境搭建,千万别用,当心爱上
    manhattan_slam环境配置
    Netapp数据恢复—Netapp存储误删除lun的数据恢复过程
    Billie Eilish的XR音乐会和三星Galaxy发布会现场竟都是他们制作
  • 原文地址:https://blog.csdn.net/qq_43529621/article/details/125484972