• 流程控制之 IF 和 while


    一、条件

      条件可以是:

        1.显示布尔值(比较运算符,也可以是True和false)

        2.y隐式布尔值(所有的值都可以当成条件,其中0、None、空【空字符串、空列表、空字典】代表的布尔值为Flase)

      逻辑运算符:not 、and、or、

        not:把紧跟后面的条件结果取反

        and:连接左右两个条件,所有条件都为True,j结果才为True

        or:连接左右两个条件,只要有一个条件为True,结果就为True;若两个条件都为Flase,结果才为Flase。

      优先级:not > and > or

      成员运算符:in、

    print('name' in {'name':'bob','age':'123','male':'man'}) #在字典中 要用Key来判断,不能用value
    print('name' in ['name','bob','age','123','male','man'])#在列表中

      身份运算符 : is  (判断ID是否相等)

    二、流程控制之if判断

      语法一:

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

      语法二:

    if 条件:
        代码1
        代码2
        代码3
    else:#条件不成立,才运行
        代码1
        代码2
        代码3

      语法三:

    if 条件2:
        代码1
        代码2
        代码3
    elif 条件2:#添加额外的条件(可添加多个,但只要条件成立一个,后面就不再运行)
        代码1
        代码2
        代码3

      语法四:

    if 条件1:
        代码1
        代码2
        代码3
    elif 条件2:#添加额外的条件(可添加多个,但只要条件成立一个,后面就不再运行)
        代码1
        代码2
        代码3
    else:#上述条件都不成立,才运行
        代码1
        代码2
        代码3

    三、短路运算

      偷懒原则,偷懒到哪里,就把当前值返回

    num_1 = 10 > 3 and 98 < 23 or 78 == 78 and 90 > 23
    print(num_1)

    四、深浅copy

        浅copy:针对不可变和可变类型没有进行区分(只COPY了第一层)

    list1=['name','age',42]
    list2=list.copy(list1)#把原列表第一层的内存地址不区分的一模一样拷贝一份
    print(list1)   =======》['name', 'age', 42]
    print(list2)   =======》['name', 'age', 42]

        深copy: (每一层都进行了copy)

           针对可变类型进行区分对待,值还是用原来的值。(copy一个列表,并且改操作完全与原列表独立开)

    五、流程控制之While循环

      语法:

    while 条件:
        代码1
        代码2
        代码3
    count = 0
    while count < 6:#t条件循环 ,条件成立一直循环
        print(count)
        count += 1
    print('棒棒棒')

      死循环

        纯计算无IO的死讯会导致致命的效率问题

      

    while 1:  #如有必要可这样写
    
    while ture:

       应用:

    name = 'JAKE'
    sercrt = 'asd'
    while True:#只要条件为真就一直循环
        inp_name = input('请输入你的账号:')
        inp_password = input('请输入你的密码:')
    
        if inp_name == name and inp_password == sercrt:
            print('登入成功')
        else:
            print('请重新登入')

        退出循环:

          方式一:

    name = 'JAKE'
    sercrt = 'asd'
    exit_1 = True
    while exit_1:  # 只要条件为真就一直循环
        inp_name = input('请输入你的账号:')
        inp_password = input('请输入你的密码:')
    
        if inp_name == name and inp_password == sercrt:
            print('登入成功')
            exit_1 = False
        else:
            print('请重新登入')

          方式二:break,只要运行到break就会结束本层循环

    name = 'JAKE'
    sercrt = 'asd'
    while True:
        inp_name = input('请输入你的账号:')
        inp_password = input('请输入你的密码:')
    
        if inp_name == name and inp_password == sercrt:
            print('登入成功')
            break  # 结束本层循环
        else:
            print('请重新登入')
    #每一层循环的结束都需要Break来结束本层的循环
    while True:
        while True:
            while True:
                break
            break
        break

        while循环嵌套:

    name = 'JAKE'
    sercrt = 'asd'
    tag = True
    while tag:
        inp_name = input('请输入你的账号:')
        inp_password = input('请输入你的密码:')
    
        if inp_name == name and inp_password == sercrt:
            print('登入成功')
            while tag:
                amd = input('请输入你要进行的操作:')
                if amd == 'q':
                    tag = False
                else:
                    print('命令{x}正在运行,'.format(x=amd))
    
        else:
            print('请重新登入')

        while + continue:#结束本次循环,直接进入下一次。(在continue之后添加同级代码毫无意义,无法运行到)  

    count = 0
    while count <= 5:
        if count == 3:
            count += 1
            continue
        print(count)
        count += 1

        while + else:(else包含的代码会在while循环结束后,并且没有被break打断才会执行)

    name = 'JAKE'
    sercrt = 'asd'
    count = 0
    while count < 3:
        inp_name = input('请输入你的账号:')
        inp_password = input('请输入你的密码:')
    
        if inp_name == name and inp_password == sercrt:
            print('登入成功')
            while True:
                amd = input('请输入你要进行的操作:')
                if amd == 'q':
                    break
                else:
                    print('命令{x}正在运行,'.format(x=amd))
            break
        else:
            print('请重新登入')
            count += 1
    else:
        print('输错账号密码三次。')
  • 相关阅读:
    插入排序
    排序算法结构表
    两个数字交换的四种方法
    LRU算法实现
    虚拟用户的配置
    【转】Linux查看CPU和内存使用情况
    Linux 多线程开发
    【转】RTSP流理解
    【转】DynDNS使用随笔
    【转】使用 udev 高效、动态地管理 Linux 设备文件
  • 原文地址:https://www.cnblogs.com/Holmes-98/p/14213704.html
Copyright © 2020-2023  润新知