1.简述
本文适合,对python没有基础想要进行一步学习的朋友们
本次,简介python的各类数据类型,后续文章载逐一展开讲述底层细节哈
学习python的第一步就是去了学习,python的数据类型。
分为可变数据类型和不可变数据类型
何为之可变与不可变
参照的对象都是以内存那块地址所存储的值的是否可以修改
可变:地址不变,值可变
不可变:地址不变,值不可变(如果要改变值,则要创建新的变量)
举个栗子
可变数据类型
不可变数据类型
Q:可能就有小伙伴就问,为什么用IDE运行上面的代码,会发现每一次的结果显示的地址都不一样?
python维护了一个小整数的对象池,你的1000超过了“小”(阈值)的定义。
小可能是指小于256的整数. 超过了小(阈值)的定义,存储机制不同。
小整数缓存在内存里,不用释放,所以每次id应该是同一个数。
大整数根据需要分配内存,不用则释放。所以id不一定是固定的数。
2.可变数据类型
可变数据类型分为:列表、字典、集合
2.1 列表(List)
python定义用[ ] 来进行标识的,是python中使用最频繁的数据类型
可以对其进行增删改查操作
#定义一个列表
L = ['J','U','E','J','I','N','G']
#增加元素操作
#3、append() 方法用于在列表的末尾追加元素
L.append('Day')
#2、extend() 不会把列表或者元祖视为一个整体,而是把它们包含的元素逐个添加到列
L.extend('Day2')
#3、List.insert(坐标,值)
L.insert(9,'Day3')
#4、用算术“+"进行连接,两个列表进行拼接
L2 = ['Day4']
print(L+L2)
#5、乘法扩算“*”,List*3,List列表里的元素重复3次
print(L2*3)
#列表删除元素方法:
#1、del List[1]#根据索引值进行删除元素
del L[0]
#2、List.pop()#根据索引值进行删除元素
L.pop()
#3、List.remove(元素)根据元素值进行删除
L.remove()
#4、List.clear()删除列表所有元素
L.clear()
#其他操作列表元素出现的次数
#1、List.count(元素)
#2、列表长度:len(List)
#3、元素首次出现的位置:List.index(value,开始地址,结束地址)
2.2 字典
字典是一个无序可变序列,每个元素都包含了“键值对”,字典的每个键值 key=>value 对用冒号 : 分割。也是有增删更新的操作。
#定义一个字典
Dict={}
Dict=dict(name="xiaoming",age=18,job="program")
Dict=dict(["name","xiaoming"])
Dict=dict(zip(k,v))#k,v为列表,k为键,v为值
Dict=dict.fromkeys("name","age","job")
#字典访问
Dict=dict(name="xiaoming",age=18,job="program")
#通过键获取值,若键不存在,抛出异常
#通过get()方式
Dict.get("name")
#列出所有的键值对
Dict.items()
#列出所有键:
Dict.keys()
#列出所有的值
Dict.values()
#检测键值对数
len(Dict)
#检测键是否在字典里
"name" in Dict
#字典添加、修改、删除
#1、覆盖,或者新键,存在则覆盖
Dict["sex"]="girl"
#2、Dict.update(b)
#3、删除字典
del(Dict["name"])
Dict.pop("name")
#随机删除键对:
Dict.popitem()
2.3 集合
集合是无序可变的,元素不能重复。实际上,集合底层是字典实现的,集合的所有元素都是字典的“键对象”,因此是不能重复的且唯一的。集合的创建{}
a={2,3,4,5}
b=["a","b","c"]
c=set(b)
#remove())删除指定元素,clear()清空整个集合
a.remove(2)
b.clear()
集合相关的运算有:如交集、并集、差集
>>> a = set('abracadabra')
>>> b = set('alacazam')
>>> a
{'a', 'r', 'b', 'c', 'd'}
>>> a - b # 集合a中包含而集合b中不包含的元素
{'r', 'd', 'b'}
>>> a | b # 集合a或b中包含的所有元素
{'a', 'c', 'r', 'd', 'b', 'm', 'z', 'l'}
>>> a & b # 集合a和b中都包含了的元素
{'a', 'c'}
>>> a ^ b # 不同时包含于a和b的元素
{'r', 'd', 'b', 'm', 'z', 'l'}
集合的相关的操作有增删改查等
#添加运输
s.add( x )
#移除元素
s.remove( x )
s.discard( x )
s.pop()
#计算个数
len(s)
#清空集合
s.clear()
#判断某个元素在不在
x in s
3. 不可变数据类型
不可变数据类型分为:数字、字符串、元组
3.1 数字
Python 数字数据类型用于存储数值。
数据类型是不允许改变的,这就意味着如果改变数字数据类型的值,将重新分配内存空间。
#定义一个数字
var1 = 1
python数字类型转换有四种形式
int(x) 将x转换为一个整数。
float(x) 将x转换到一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y) 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。x 和 y 是数字表达式。
Python 数字运算包含 +, -, * 和 /,//,%,**(幂运算)
>>> 2 + 2
4
>>> 50 - 5*6
20
>>> (50 - 5*6) / 4
5.0
>>> 8 / 5 # 总是返回一个浮点数
1.6
>>> 17 / 3 # 整数除法返回浮点型
5.666666666666667
>>>
>>> 17 // 3 # 整数除法返回向下取整后的结果
5
>>> 17 % 3 # %操作符返回除法的余数
2
>>> 5 * 3 + 2
17
>>> 5 ** 2 # 5 的平方
25
>>> 2 ** 7 # 2的7次方
128
3.2 字符串
可以使用引号( ' 或 " )来创建字符串。
创建字符串很简单,只要为变量分配一个值即可
var1 = 'Hello World!'
字符串切片[]:
1、[Start:end] 包头不包尾
2、正向搜索、反向搜索
3、[::-1]逆向输出,反向输出
4、split()分割字符串;join()连接字符串
“+”每次都创建新的对象
“join()”仅创建一次对象
5、字符串驻留:符合标识符规则(仅包含数字、下划线,字母)回启用字符串驻留机制
3.3 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组是不可变类型的,因此它只有访问、修改、删除的操作
#创建元组示列
tuple=(1,2,3,4)
tuple=1,2,3,4
tuple=([1,2,3,4])
tuple=("123456")
tuple[1:2]
#元组相关操作
#访问元素tuple[下标]
tuple[0]
#删除元素
del tup
#修改元素
# 以下修改元组元素操作是非法的。
# tuple[0] = 100
# 创建一个新的元组
tuple3 = tuple + tuple2
print(tuple3)
好啦,本次先概述到这里,如有错误的地方,欢迎大佬们指正
python学习的路上,一起加油
我是初学python的盆友圈的小可爱,下期在再见