• python入门day06——流程控制之if判断、while循环、for循环


    一、流程控制之if判断

    if判断的完整语法:

    if 条件:(可以是if 10 if 10 and 20)
    代码1
    代码2
    代码3
    ...
    elif 条件2:
    代码1
    代码2
    代码3
    ...
    elif 条件3:
    代码1
    代码2
    代码3
    ...
    else:
    代码1
    代码2
    代码3
    ...

    运行原理示范
    print(1111)
    print(2222)
    if True:
    print('if的子代码1')
    print('if的子代码2')
    print('if的子代码3')
    print(333)

    1、语法1

    """
    if 条件1:
    代码1
    代码2
    代码3
    ...
    """

    # 应用案例
    gender = 'female'
    age = 18
    is_beautiful = True
    
    if gender == 'female' and 18 <= age <= 60 and is_beautiful:
        print('开始表白。。。')
    print('后续代码...')
    # 开始表白。。。
    # 后续代码...
    

    2、语法2

    """
    if 条件1:
    代码1
    代码2
    代码3
    ...
    else:
    代码1
    代码2
    代码3
    ...
    """

    gender = 'female'
    age = 99
    is_beautiful = True
    
    if gender == 'female' and 18 <= age <= 60 and is_beautiful:
        print('开始表白。。。')
    else:
        print('阿姨好,开个玩笑...')
    print('后续代码...')
    # 阿姨好,开个玩笑...
    # 后续代码...
    

    3、语法3

    """
    if 条件1:
    代码1
    代码2
    代码3
    ...
    elif 条件2:
    代码1
    代码2
    代码3
    ...
    else:
    代码1
    代码2
    代码3
    ...
    """

    score = input('请输入你的成绩: ')
    score = int(score)
    
    if score >= 90:
        print('优秀')
    elif 80 <= score:
        print('良好')
    elif score >= 70:
        print('普通')
    else:
        print('很差')
    # 请输入你的成绩: 88
    # 良好
    

    2、语法4

    """
    if的嵌套
    """

    age = 17
    is_beautiful = True
    star = '水平座'
    
    if 16 < age < 20 and is_beautiful and star == '水平座':
        print('开始表白。。。。。')
        is_successful = True
        if is_successful:
            print('两个从此过上没羞没臊的生活。。。')
    else:
        print('阿姨好,我逗你玩呢,深藏功与名')
    
    print('其他代码.............')
    # 开始表白。。。。。
    # 两个从此过上没羞没臊的生活。。。
    # 其他代码.............
    

    二、流程控制之while循环

    """
    语法:
    while 条件:
    代码1
    代码2
    代码3
    ...

    基本使用1:
    print('start.....')
    while 10 < 3:
    print('hello1')
    print('hello2')
    print('hello3')

    print('end....')

    基本使用2:
    count = 0
    while count < 6: # 6 < 6
    print(count)
    count += 1

    print('end.....')
    """

    1、基本使用

    db_name = "sa"
    db_pwd = "123"
    
    while True:
        inp_name = input("请输入您的用户名: ")
        inp_pwd = input("请输入您的密码: ")
    
        if inp_name == db_name and inp_pwd == db_pwd:
            print("用户登录成功")
        else:
            print("用户账号或密码错误"
    

    2、如何结束while循环

    (1)把条件改为False

    db_name = "sa"
    db_pwd = "123"
    
    tag = True
    while tag:
        inp_name = input("请输入您的用户名: ")
        inp_pwd = input("请输入您的密码: ")
    
        if inp_name == db_name and inp_pwd == db_pwd:
            print("用户登录成功")
            tag = False
        else:
            print("用户账号或密码错误")
    
        print('其他。。。。。。。。。')
    

    (2)break:直接终止本层循环

    db_name = "sa"
    db_pwd = "123"
    
    while True:
        inp_name = input("请输入您的用户名: ")
        inp_pwd = input("请输入您的密码: ")
    
        if inp_name == db_name and inp_pwd == db_pwd:
            print("用户登录成功")
            break
        else:
            print("用户账号或密码错误")
    
        print('其他。。。。。。。。。')
    

    """
    while True:
    while True:
    while True:
    break
    break
    break

    tag = True
    while tag:
    while tag:
    while tag:
    tag = False
    """

    3、死循环

    while True:
        # print('Hello')
        # input(">>: ")
        1+1
    

    4、while+continue: 终止本次循环

           强调1:不要在continue之后编写同级别的代码

    count = 0
    while count < 6: # 5 < 6
        if count == 3or count == 4:
            count += 1
            continue
            # count+=1 # 不要写在这里
        print(count)
        count += 1
    

           强调2:如果不想执行本次循环之后的代码,可以用continue,但是如果本次循环本来就没有要继续运行的后续代码了,就没必要加continue了

    db_name = 'egon'
    db_pwd = '123'
    while True:
        inp_name = input('请输入您的用户名:')
        inp_pwd = input('请输入您的密码:')
        if inp_name == db_name and inp_pwd == db_pwd:
            print('用户登录成功')
            break
        else:
            print('用户账号或密码错误')
            # continue
        print('while子代码。。。。。。')  # 加了continue后这条代码在else里永远不会出现
        # 如果没有 print('while子代码') else同级代码本身后面没有代码 那么也就没必要加continue了
    

    5、while + else

    count = 0
    while count < 6:
        print(count)
        if count == 3:
            break # 有break后直接终止 就不是正常死亡 就不会运行else
        count += 1
    
    else:
        print('会在while循环正常死亡之后运行')
    print('。。。。。。。。')
    
    # else的应用场景
    """
    把多个多个账号密码存起来
    
    要求用户输入账号
    要求用户输入密码
    
    循环:
        从存放多个正确账号密码的地方取出一组账号和密码
        判断 输入账号 等于 取出的账号 并且输入的密码 等于 取出的密码
            告诉用户认证成功
            break
        # 否则:
        #     继续取账号密码判断(continue) # 因为continue后面没有其他代码 所以没必要这步骤
    else:
        print('告诉用户输入的账号密码错误')
    """
    

    6、while循环嵌套

    db_name = "egon"
    db_pwd = "123"
    
    while True:
        inp_name = input("请输入您的用户名: ")
        inp_pwd = input("请输入您的密码: ")
    
        if inp_name == db_name and inp_pwd == db_pwd:
            print("用户登录成功")
            while True:
                print("""
                0 退出
                1 取款
                2 提现
                3 转账
                """)
                cmd=input("请输入您的命令编号:")
                if cmd == "0":
                    break
                elif cmd == "1":
                    print("正在取款")
                elif cmd == "2":
                    print("正在提现")
                elif cmd == "3":
                    print("正在转账")
                else:
                    print("不知道的指令,请重新输入")
            break
        else:
            print("用户账号或密码错误")
    
    # tag的方式结束循环
    db_name = "egon"
    db_pwd = "123"
    
    tag = True
    while tag:
        inp_name = input("请输入您的用户名: ")
        inp_pwd = input("请输入您的密码: ")
    
        if inp_name == db_name and inp_pwd == db_pwd:
            print("用户登录成功")
    
            while tag:
                print("""
                0 退出
                1 取款
                2 提现
                3 转账
                """)
                cmd=input("请输入您的命令编号:")
                if cmd == "0":
                    tag = False
                elif cmd == "1":
                    print("正在取款")
                elif cmd == "2":
                    print("正在提现")
                elif cmd == "3":
                    print("正在转账")
                else:
                    print("不知道的指令,请重新输入")
        else:
            print("用户账号或密码错误")
    

    三、流程控制之for循环

    """
    1.for循环主要用于循环取值,例如列表、字典、字符串
    2.for循环循环的次数取决于值得个数
    while循环循环的次数取决条件什么时候变为False或者什么时候执行break

    3.终止for循环只有break一种方案

    """

    1、基本使用

    l = [111, 222, 333, 444, 555]
    
    i = 0
    while i < len(l):
        print(l[i])
        i += 1
    
    for x in l:
        print(x)
    
    d = {'k1': 123, 'k2': 'sa', 'k3': [1, 2, 3]}
    
    for k in d:
        print(k, d[k])
    
    
    msg='hello word'
    for x in msg:
        print(x)
    
    l = [['aaa',111],['bbb',222],['ccc',333]]
    for x in l:
        print(x)
    for x,y in l:
        print(x,y)  # 用了解压赋值
    

    2、for + break

    for x in [111, 222, 333, 444, 555]:
        if x == 333:
            break
        print(x)
    # 111
    # 222
    

    3、for + continue

    for x in [111, 222, 333, 444, 555]:
        if x == 333:
            continue
        print(x)
    # 111
    # 222
    # 444
    # 555
    

    4、for + else

    for x in [111, 222, 333, 444, 555]:
        if x == 333:
            break
        print(x)
    else:
        print(print(' =====>'))
    

    5、for循环嵌套

    for i in range(2):
        print('外层循环-->', i)
        for j in range(3):
            print('内层-->', j)
            # 外层循环--> 0
    # 内层--> 0
    # 内层--> 1
    # 内层--> 2
    # 外层循环--> 1
    # 内层--> 0
    # 内层--> 1
    # 内层--> 2
    

    注意:终止for循环只有break一种方案

    6、for循环控制循环次数:range()

           in后直接放一个数据类型来控制循环次数有局限性:当循环次数过多时,数据类型包含值的格式需要伴随着增加
           range功能介绍

    >>> range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> 
    >>> range(1,9) # 1...8
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> 
    >>> range(1,9,1) # 1 2 3 4 5 6 7 8 
    [1, 2, 3, 4, 5, 6, 7, 8]
    >>> range(1,9,2) # 1 3 5 7 
    [1, 3, 5, 7]
    

           1、for搭配range,可以按照索引取值,但是麻烦,所以不推荐

    l=['aaa','bbb','ccc'] # len(l)=3
    for i in range(len(l)):
        print(i,l[i])
    # 0 aaa
    # 1 bbb
    # 2 ccc
    
    for x in l:
        print(x)
    # aaa
    # bbb
    # ccc
    

    总结for循环与while循环的异同

           1、相同之处:
           都是循环,for循环可以干的事,while循环也可以干
           for+break: 同while+break循环一样
           for+else:同while+else循环一样
           2、不同之处:
           while循环称之为条件循环,循环次数取决于条件何时变为假
           for循环称之为"取值循环",循环次数取决in后包含的值的个数

  • 相关阅读:
    window安装swagger editor
    DiffMerge安装配置使用
    线程池相关知识点
    JAVA程序员面试笔试宝典4
    JAVA程序员面试笔试宝典3
    JAVA程序员面试笔试宝典2
    JAVA程序员面试笔试宝典1
    Linux开启ssh服务
    面试题
    java基础学习之垃圾回收机制
  • 原文地址:https://www.cnblogs.com/liuxinging/p/13274525.html
Copyright © 2020-2023  润新知