• 可变类型逻辑运算符if条件


    0: 温故知新

    l = [111, 222, 333]
    l2 = l  # 把l的内存地址给l2
    l[0] = 'balabla'
    print(l)         #['balabla', 222, 333]
    print(l2)         #['balabla', 222, 333]
    l2[1] = 4444444444444
    print(l2)         #['balabla', 4444444444444, 333]
    print(l)         #['balabla', 4444444444444, 333]

    代码中l与l2指向同一个列表,同一个内存地址

    python中传递变量,传递参数其实传递的都是内存地址

     

     

     

    # 格式化输出
    print('成功的概率 %s%% ' % (97,))     # 成功的概率 97%
    x = 'wu'
    y = 18
    res = f'name:{{{x}}} age {y}'         # 输出{}符号
    print(res)       # name:{wu} age 18

    格式化输出中如想输出有特殊含义的符号需要打两遍才能正常输出

     

     

     

    print("华丽的分割线{:*<30}".format("我占几个格就少几个*号"))   #{}替换字符左对齐,其他用*
    print("华丽的分割线{:*>30}".format("我占几个格就少几个*号"))   #{}替换字符右对齐,其他用*
    print("华丽的分割线{:*^30}".format("我占几个格就少几个*号"))   #{}替换字符居中,其他用*
    # 华丽的分割线我占几个格就少几个*********************
    # 华丽的分割线********************我占几个格就少几个*
    # 华丽的分割线**********我占几个格就少几个***********

    格式化输出进阶用法: 指定{}替换后字符串的长度,不够的用指定字符填充

     

     

     

    print("salary = {:.4f}".format(3000.1234567))    # :.4f含义为小数点后保留4位,四舍五入
    salary = 3000.1235

    格式化输出进阶用法: 指定格式化输出数字的保留位数

     

     

    f'{print("aaaa")}'

    f"进阶用法: 使用f""会运行{}内的程序

     

     

     

    1:可变不可变类型

     

    可变类型就是可以在内存地址不改变的情况下更改原数据的类型

    不可变类型就是无法在内存地址不改变的情况下更改原数据的类型

    字符串,数字类的类型,布尔类型,元组都属于不可变数据类型

    字典,列表,集合属于可变数据类型

    下面进行验证:

    # int是不可变类型
    x = 10
    print(id(x))
    x += 1 # 产生新值
    print(id(x))  # id改变
    # float是不可变类型
    x = 10.5
    print(id(x))
    x += 1 # 产生新值
    print(id(x))  # id改变
    # str是不可变类型
    x = "abc"
    print(id(x))
    x = x.replace("a", "x")
    print(x)
    print(id(x))  # id改变
    # list是可变类型
    l=['aaa','bbb','ccc']
    print(id(l))
    l[0]='111'
    print(l)
    print(id(l))  # id未改变
    # dict
    dic = {'k1': 111, 'k2': 222}
    print(id(dic))
    dic['k1'] = 333
    print(dic)
    print(id(dic))  # id未改变

     

     

     

     

     

     

     

    2、条件

    什么是条件?

    条件是我们用来判断某事是否满足需求的标准,如我们的各种要求,

    条件只有满足与不满足两种结果,即True以及False也就是布尔值

    通过前面比较运算符的学习,我们能通过它的运算得到布尔值,

    这就是条件的一种形式: 通过比较运算符的运算获得条件

    布尔值的形式:

    1.显式布尔值:True、False

    我们通过比较运算得到的就是显式布尔值

    还有一种方法就是直接输入的True和False

     

    2.隐式布尔值:所有数据类型,其中0、None、空为假

    我们使用if判断时输入的条件也可以是显示布尔值以外的值: 如数字,12或字典,列表

    通过if我们可以发现隐式布尔值,其中0、None、空(如空列表[],空字典{})为假,其他值都为真

     

     

     

     

     

     

    3:逻辑运算符

    逻辑运算符有三种:not、 and 、 or

    3.1 not

    not用来取反条件

    not True == False,not False == True

     

    3.2 and

    and:逻辑与,and用来链接左右两个条件,两个条件同时为True,最终结果才为真

    print(True and 10 > 3 and 10 and 0) # 条件全为真,最终结果才为True
    print(10 > 3 and 10 and 0 and 1 > 3 and 4 == 4 and 3 != 3)  # 条件有假就是假

     

    3.3 or

    or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,

    两个条件都为False的情况下,最终结果才为False

    print(3 > 2 or 0)    # 条件全为假,最终结果才为False,否则为真
    print(3 > 4 or False or 3 != 2 or 3 > 2 or True)  # 条件有真就为真

     

    3.4 优先级

    当我们混合逻辑运算符使用时,不可避免会遇到优先级问题,先运算哪种

     

    区分优先级:not > and > or

    res = 3 > 4 and ((not 4 > 3) or 1 == 3) and ('x' == 'x' or 3 > 3)
    print(res)       # False

     

     

     

    4、成员运算符

     

    成员运算符有 in 和 not in

    用于判断in左边的元素是否是右边数据的子元素,输出结果为布尔值

    简单的说就是判断左边的数据是否在右边的数据里面

     

    print("wu" in "hello wuu")  # 判断一个字符串是否存在于一个大字符串中
    print("o" in "hello wuu")  # 判断一个字符串是否存在于一个大字符串中
    print(111 in [111, 222, 33])  # 判断元素是否存在于列表
    print(111 in {"k1": 111, 'k2': 222})  # 对于字典,只能判断数据是否存在于字典的key中
    print("k1" in {"k1": 111, 'k2': 222})

    注意点: 对于字典,只能判断左边的数据是否存在于字典的key中

    not in 与 in 用法相同,只是将输出结果的布尔值做取反

     

     

    5、身份运算符

    身份运算符有: is

    用于判断is两边的数据的内存地址,即id是否相等,输出结果为布尔值

     

    a = [2, 3]
    b = a
    print(a is b)       # True

     

     

    6、流程控制之if判断

    if 语法可以用于在满足if条件时执行部分代码

    if后跟条件,第二行填入条件满足时执行的代码

    elif后跟条件,第二行填入条件满足时执行的代码,可使用多个elif

    else第二行表示不满足条件时执行的代码

    choose = input("请选择执行功能:(1,2)")
    if choose == "1":
        print("执行代码1")
    print("程序结束")
    choose = input("请选择执行功能:(1,2)")
    if choose == "1":
        print("执行代码1")
    else:
        print("执行代码")
    print("程序结束")
    score = input('请输入您的成绩:')   # 输出成绩所属级别
    score = int(score)
    if score >= 90:
        print('优秀')
    elif score >= 80:
        print('良好')
    elif score >= 60:
        print('及格')
    else:
        print('不及格')
    print('程序结束')

     

  • 相关阅读:
    【Unity Shader 】CG语法
    编译boost到各个系统平台 mac,iOS,linux,android,wind
    c pvr转存pvr.ccz格式 (转 http://www.cnblogs.com/howeho/p/3586379.html)
    mac Nginx + FastCgi + Spawn-fcgi + c++
    得到指定占用宽度的字体 。(英文占用一个位,中文占用两个位,英文大写占用两个位)
    cocos2d 文件系统使用文件内存映射性能对比
    关于PUPBLD.SQL
    ora-01033:ORACLE initialization or shutdown in progress解决方法
    linux下如何查看命令的绝对路径
    【测试工具】http协议调试利器fiddler使用教程
  • 原文地址:https://www.cnblogs.com/achai222/p/12430591.html
Copyright © 2020-2023  润新知