• python全栈_004_Python3基本数据类型


    1:什么是可变数据类型和不可变数据类型:

      可变数据类型:value值改变,id值不变(即变量的内存地址不改变),即修改变量的值还在原来的内存中修改,不用重新创建一个对象,分配一块内存;

      不可变数据类型:value值改变,id值也随之改变(即变量的内存地址也改变),即原来内存中的值不能修改,修改变量的值,不会在原来的内存中修改,会重新创建一个对象,分配一块内存;

      怎么判断是否可变???  是否可变,看能否在原来中的内存中修改,能修改就是可变数据类型,不能修改就是不可变数据类型。

           判断方法:改变变量的值,看变量的内存地址值是否改变(使用id()函数查看):
        a:如果变量的内存不变,那么就是可变数据类型;(可以在原来的内存中修改)
        b:如果变量的内存改变,那么就是不可变数据类型;(不能在原来中的内存中修改,意味着改变变量的值会重新创建对象,分配内存)

      

        如下图:int类型是不可变数据类型;

        

    2:常见的基本数据类型:

      1. int 整数
      2. bool 布尔. 判断. if while
      3. str 字符串, 一般放小量的数据.
      4. list 列表. 可以存放大量的数据
      5. dict 字典, 以key:value的形式存储数据
      6. set 集合(数学)
      7. tuple 元组 不可变

    2.1:int类型:


    整数: 常见操作就那么几个 +-*/ // % **
    bit_length() 一个数的二进制长度
    (后面专门介绍)

    2.2:bool类型:

      没有操作
      类型转换
      字符串转换成整数 int(str)

      结论1: 想要转化成什么类型就用这个类型括起来
      结论2: True => 1 False => 0
      结论3: 可以当做False来用的数据: 0 "" [] {} () None

     (其他的后面介绍)

    3:类型转换:

    # 把字符串转换为int
    print('1:把字符串转换为int')
    a = '10'
    print(a, type(a), id(a))
    b = int(a)
    print(b, type(b), id(b))
    
    # 把int转化成字符串
    print('2:把int转化成字符串')
    a = 10
    print(a, type(a), id(a))
    b = str(a)
    print(b, type(b), id(b))
    
    # 如果想把字符串转化成int    int(str)
    # 把int转化成str    str(int)
    # 结论: 想转化成xxx数据类型    xxx(目标)
    
    # 把int转换为bool
    print('3:把int转换为bool')
    a = 10
    print(a, type(a))
    b = bool(a)
    print(b, type(b))
    
    # 把bool转换为str
    print('4:把bool转换为str')
    c = True
    print(c, type(c))
    d = str(c)
    print(d, type(d))
    
    # 把bool转换为int
    print('5:把bool转换为int')
    a = False
    print(a, type(a))
    b = int(a)
    print(b, type(b))
    
    # 结论2: True => 1  False => 0
    # 结论3 , 可以当做False来用的数据: 0, "", [], (),{}, None
    # 所有的空的东西都是False
    
    print('6:可以当做False来用的数据')
    print(0, "", [], (), {}, None)
    print(bool(0), bool(""), bool([]), bool(()), bool({}), bool(None))
    print(id(0), id(""), id([]), id(()), id({}), id(None), id(False))
    # 虽然都可以当做False,但是各个数据的内存地址是不一样的
    # 所以不能说  0 is False,0 is None,"" is None ,[] is None等;在判断某个对象是否为空的时候需要注意!!!
    
    
    s = ""
    if s:
        print("娃哈哈") #不会输出
    
    if s is None:  # 不能这么判断是否为空
        print('s is None')
    else:
        print('s is not None')  # 输出此
    
    lst = []
    if lst is None:      # 不能这么判断是否为空,is 比较的是其地址
        print('lst is None')
    else:
        print('lst is not None')  # 输出此
    
    if 0 is False: # 不能这么判断
        print('0 is False')
    else:
        print('0 is not False') # 输出此
    
    if 0 == False:
        print('0 == False')   # 输出此,比较时会对False进行类型转换,int(False) 结果为0 
    else:
        print('0 != False')
    
    s = ''
    if 0 == s:
        print('0 == s')
    else:
        print('0 != s')  # 输出此
  • 相关阅读:
    揺する、揺らす、揺さぶる区別
    test
    W5N1のW2D2
    微软企业库6的使用方法
    Delphi XE6 原生解析json
    delphi URL 编码的转换
    Go语言配置与开发环境配置
    Win7 IIS下启用ASP.NET
    Windows2003远程桌面单会话登录
    IIS7应用程序池集成和经典的区别
  • 原文地址:https://www.cnblogs.com/ixuby/p/10075565.html
Copyright © 2020-2023  润新知