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')  # 输出此

猜你喜欢

转载自www.cnblogs.com/ixuby/p/10075565.html