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