基本数据类型
数据类型
在记录变量或者常量时,数据值需要合适的类型进行记录,
比如等级可以用数字记录,
比如名字需要用文字记录,
在python中,有几个常用的数据类型需要掌握,能帮助我们更好的记录数据
而数据类型可以用一条指令type(数据或者变量)
来判断
数字类型int、float
int是数字整型,float是数字浮点型,对应是我们平常用的整数和小数
print(type(10))
# <class 'int'>
print(type(10.1))
# <class 'float'>
int和float在底层的存储方式是有区别的,但是在python中int和float的使用没有差别,作为普通的数字使用即可。
字符串str
字符串可以记录我们文字内容,包括字母、汉字等
name = 'leethon'
print(type(name))
# <class 'str'>
列表list
列表是用来记录多个不同的值的,它可以将这几个值存在一个变量里
# 对比以下两种存多个值的方式
name_list1 = "张三 李四 王二麻" # 字符串
name_list2 = ['张三', '李四', '王二麻'] # 列表
在存储上,两个姓名表好像差不多,那么为什么还要专门搞一个列表类型的数据呢?
这时就要抛出一个重要的思想:
对于数据,存,要千方百计的存,取,要轻易快速的取
所有数据的存储都是为了日后能快速的定位到我们想要的数据。
敲黑板,放图
那么列表有什么取数据的优势呢?
print(name_list2[0])
# 张三
print(name_list2[1])
# 李四
print(name_list2[2])
# 王二麻
print(name_list2)
# ['张三', '李四', '王二麻']
"""
变量名对应列表,变量名[下标]对应列表中的某个元素
我们可以用变量名取到整个列表,
也可以用 变量名[下标]取到任何一个元素
"""
最后整理一下列表的细节和特点:
-
列表用
[]
括起来,数据之间用逗号隔开list1 = [数据1,数据2,数据3,……] # list1变量存入列表数据类型
-
列表可以在一块连续空间有序存放几个不同的数据
-
列表取值可以按下标取,第一个元素的下标是从0开始的
-
列表的元素可以是另外一个列表,列表之间可嵌套
[1, 2, 3, [4, 5],[6,[7, 8]]] # 列表的嵌套
字典dict
列表可以让我们根据下标取到某一个元素的值,但是当一个列表的内容十分繁杂,如:
info = ['leethon', 18, 1.8, 'read']
# 以上这个列表的内容,如果不加以解释,很难区分这个字典每个元素的含义,即使能分辨含义,其取值方式info[0]也无法和元素含义相关联
所以就有一个字典的数据类型用于解决这一问题。
字典定义:
形式:大括号框柱,以k:v形式为键值对,每个键值对间用逗号隔开
{key: value, key2: value2, ……}
# 例子
info_dict = {'name': 'leethon',
'age': 18,
'height': 1.8,
'hate': 'read'
}
这样我们可以清晰的认识到18是年龄的意思,1.8是身高,阅读是这个人厌恶的事情。
但是,这么存好像更麻烦了,每个数据都多了一个描述信息,这时还是那句话:
存,要千方百计的存,取,要轻易快速的取
那怎么取呢?
name = info_dict['name']
print(name)
# leethon
# 只要用字典的变量名后面跟上[关键词]就可以取出相应的内容
布尔值bool
布尔值是表示事物真假两个状态的数据类型,它更偏向于最终做出决定的结果。
存储形式:True
表示真、对、可行;False
表示假、错、不可行
除了True/False
表示布尔状态,还有其他数据也带有布尔属性:
# 带False属性:
0,none, [], {} ,set()
# 带True属性的:
除了上面的全部都带True属性。
存储布尔值的变量,其命名一般以is开头,可视为python的规范和习惯。
is_delete = 0 # 代表没有被删除
元组tuple
元组和列表很像,都可以存储多个元素。
t1 = (1, 2, 3,)
t2 = (1,)
t3 = ()
t4 = (1, 'lee', [11, 22])
# 以上都是元组,用小括号括起来,逗号隔开其他元素
元组与列表的不同点,在于其内部的元素是不可变的。
print(t1[0])
# 1 ,可以像元组一样取值
t1[0] = 0 # 报错'tuple' object does not support item assignment
print(t1[0]) # 上一句指元组对象不支持元素的更改
进阶:底层机制解析
元组与其内部元素的绑定关系是不可变的,而不是其内部元素完全不变。
怎么理解这句话呢?
看这个例子:
t4 = (1, 'lee', [11, 22])
t4[2][1] = 100
print(t4[2]) # [11, 100]
# 可以看见,元组的序列2元素发生了变化,为什么这次更改就没有触发报错呢?
注意,这里绑定关系发生更改的是t4[2]
而不是t4
,即是列表的绑定关系变化而不是元组。
集合set
集合并不算常用,其应用面仅仅在去重和关系运算。
语法:
se1 = set() # 空集合,因为{}代表空字典
se2 = {1, 2, 3, 'aa'} # 不能有重复元素
大括号括起来,但是与字典不同,它内部的元素不是k:v键值对。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探