• python入门——可变不可变类型、逻辑运算符


    什么叫做可变与不可变类型呢

      可变类型:值改变,id不变,证明改的是原值,证明原值是可以被改变的

      不可变类型:值改变,id也变了,证明是产生新的值,压根没有改变原值,证明原值是不可以被修改的

    那么基本类型中哪些是可变类型哪些是不可变类型呢,让我们来一一验证

      首先是int,当运行完后发现他的两个id发生了改变,那么int就是不可变类型。

    x=10
    print(id(x))
    x=11 # 产生新值
    print(id(x))

      接着是float,当运行完后发现他的两个id发生了改变,那么float就是不可变类型。

    =3.1
    print(id(x))
    x=3.2
    print(id(x))

      接着是str,当运行完后发现他的两个id发生了改变,那么str就是不可变类型。

    x="abc"
    print(id(x))
    x='gggg'
    print(id(x))

      这里说下下,int、float、str被设计成了不可分割的整体,不能够被改变

      下面是list类型我们发现当他的值改变时,他的列表list的id没发生改变,所以list可变类型

    l=['aaa','bbb','ccc']
    print(id(l))
    l[0]='AAA'
    print(l)
    print(id(l))

      dict也是同理,所以dict可变类型。定义:{}内用逗号分隔开多key:value,其中value可以是任意类型,但是key必须是不可变类型

    dic={'k1':111,'k2':222}
    print(id(dic))
    dic['k1']=3333333333
    # print(dic)
    print(id(dic))

      最后是bool,他只有true和false,你不可能把它改变,所以bool也是不可变类型。

    条件

      条件分为显式布尔值和隐式布尔值。显式布尔值就像比较运算符,他判断后会给你一个布尔值,当然true、false也是。

    age = 18
    print(age > 16)  # 条件判断之后会得到一个布尔值
    
    is_beautiful=True
    print(is_beautiful)

      而隐式布尔值,他的所有的值都可以当成条件去用。其中0、None、空(空字符串、空列表、空字典)=》代表的布尔值为False,其余都为

    逻辑运算符

      逻辑运算符就是not、and、or。

      not:就是把紧跟其后的那个条件结果取反。ps:not与紧跟其后的那个条件是一个不可分割的整体

    print(not 16 > 13)
    print(not True)
    print(not False)

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

    print(True and 10 > 3)

      or:逻辑或,or用来链接左右两个条件,两个条件但凡有一个为True,最终结果就为True,两个条件都为False的情况下,最终结果才为False

    print(3 > 2 or 0)

      而在优先级上not>and>or

  • 相关阅读:
    luogu P1955 [NOI2015]程序自动分析
    luogu P5514 [MtOI2019]永夜的报应
    bzoj1816[Cqoi2010]扑克牌
    bzoj1040[ZJOI2008]骑士
    bzoj4582[Usaco2016 Open]Diamond Collector
    bzoj1029[JSOI2007]建筑抢修
    bzoj1079[SCOI2008]着色方案
    bzoj1051[HAOI2006]受欢迎的牛
    bzoj4525[Usaco2016 Jan]Angry Cows
    bzoj4512[Usaco2016 Jan] Build Gates
  • 原文地址:https://www.cnblogs.com/liuxinging/p/12433974.html
Copyright © 2020-2023  润新知