研究生基本功-Python快速入门(二)——数据类型文章目录研究生基本功-Python快速入门(二)——数据类型python中常见的数据类型数值型(int,float,complex)字符型(str)列表(list)字典(dict)元组(tuple)集合(set)数值型整型(int)布尔型(bool)浮点型(float)复数型(complex)数值型的运算整数与浮点数的运算复数类型的运算布尔类型的运算字符串类型字符串定义时的执行顺序字符串操作列表类型列表介绍列表操作元组类型元组介绍元组操作集合类型集合介绍集合操作字典类型字典介绍字典操作python中常见的数据类型数值型(int,float,complex)int类型表示整数值。float类型表示浮点数带小数点的数值。complex类型表示复数有实部和虚部例如35j。字符型(str)字符型指的是文本数据。列表(list)表示有序的元素集合可以包含不同类型的数据且可以修改。 例如[1, 2, 3]字典(dict)表示键值对的集合每个键必须唯一值可以是任意数据类型。 例如{‘name’‘小明’,‘age’:20}元组(tuple)与列表类似但里面的元素不可修改。用于存储不需要修改的元素。例如(123)集合(set)表示不重复且无序的元素集合。适用于去重和集合运算。例如{123}数值型整型(int)在新版的Python3中只有一种整数类型 int。布尔型(bool)是整数型的子类只有两个值。“True”对应数值“1”“False”对应数值“0”。浮点型(float)浮点型数值由整数部分和小数部分组成。浮点型数据是近似存储的在存储上可能存在误差其可以使用科学计数法表示。例如2e32*10^32000。复数型(complex)此类型由实部和虚部组成有两者表达方式“15j”也可以表示为complex(1,5)实部和虚部都是浮点型数值。数值型的运算整数与浮点数的运算# 加减乘除a2b2cab# “”是赋值运算符这里意思是将ab的值赋值给变量c“”才是真正的等于等于更多用于判断前后是否相等。da-b ea*b fa/b# 数字除法运算最终结果为浮点型print(c,d,e,f)print(type(f))# 整除将小数部分直接舍弃a7b3ca//b# 会将小数部分直接舍弃print(c)# 取余得到除法操作中的余数a8b3ca%b# 此运算符是取余数会得到8除3的余数print(c)# 幂次方操作a2b2**4# 2的4次方print(b)# 四舍五入函数roundround(3.14,1)# python内置的四舍五入函数保留几位小数就写几# 强制类型转换a3.1415926bint(a)# 将浮点型转化为整型 只保留整数部分print(type(b))# 最终会输出3# 浮点数的输出方式a3.1415926print(a的值是%f%(a))# %f默认保留六位小数print(a的值是%.2f%(a))# 保留2位小数print(fa的值是{a:.2f})# 保留2位小数# 科学计数法a2e3# 2*10^32000print(a)print(type(a))# 会输出“class float”b2e-3# 2*10^(-3)0.002print(b)# 复数存储的误差a0.1b0.2cabprint(c的值是%.20f%(c))# 输出0.30000000000000004441说明存储上存在误差复数类型的运算# 复数的表示c12jprint(c)# 会输出(12j)ccomplex(1,2)print(c)# 同样会输出(12j)布尔类型的运算# bool类型表示# 为True非0数非空字符串True# 为False空字符串、0、None、Falseprint(True1)# True的值为1最终会输出2print(False1)# False的值为0最终会输出1字符串类型Python的字符串是由数字、字母、下划线组成的一串字符例如a “abc_123”。字符串的索引从0开始-1为其末尾的位置。字符串定义时的执行顺序在定义a“Hello”时其执行顺序为在内存中创建一个字符串“Hello”在栈寄存器中创建一个变量a将字符串“Hello”的内存地址赋值给a字符串操作# 字符串的拼接str1acstr2bprint(str1str2)# 最后输出acb# 字符串的索引切片str1Hello world# 索引查询print(str1[4])#最后输出为“o”# 切片操作本质上是通过索引和步长来选择元素 基本语法sequence[start:end:step]str1Hello worldprint(str1)print(str1[::])# Hello worldprint(str1[:])# Hello worldprint(str1[1::])# ello worldprint(str1[1::2])# el olprint(str1[1:9:1])# ello wor 切片的格式[start:end:step] 性质为左闭右开print(str1[1:3])# elprint(str1[-10:-1])# ello worlprint(str1[-10:])# ello world# 字符串的地址str1Hello worldprint(id(str1))str1ABCDprint(id(str1))# 最后两者输出不一样本质是“Hello world”和“ABCD”内存地址不同列表类型列表介绍列表是Python中最常见的数据类型。列表是写在方括号[]之间、用逗号分隔开的元素列表其中元素的类型可以不相同它支持数字、字符串甚至可以包含列表的嵌套。列表中的元素是可以改变的。列表中的每个值都有对应的位置值称之为索引第一个索引为0第二个为1依次类推。同时也有负索引-1为末尾开始位置。list_1[1,Hello,3.14,[1,2,3]]在上述中list_1[0]返回1list_1[1]返回Hellolist_1[-1]返回[1, 2, 3]。列表操作# 创建列表lst1[1,2,3,4,Hello,[1,2,3]]print(lst1)list2[[1,2],[2,3]]print(a)#输出[[1, 2], [2, 3]]# 索引查询切片lst1[1,2,3,4,hello,[1,2,3]]print(lst1[4])# 输出helloprint(lst1[-1])# 输出[1, 2, 3]lst1[1,2,3,4,6,7,8]print(lst1[1:])# 输出[2, 3, 4, 6, 7, 8]print(lst1[1::2])# 输出[2, 4, 7] step为2print(lst1[-7:])# 输出[1, 2, 3, 4, 6, 7, 8]# 列表的拼接a[1,2,3]b[3,4]cabprint(c)# 输出[1, 2, 3, 3, 4]# range函数的本质alist(range(0,10))# range函数的本质是列表也符合左闭右开的规则。比如range(0,10)就是[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]# append函数——增加函数a[1,2,3]a.append(10)# append函数本质就是在最末尾增加一个新的元素print(a)# 输出为[1,2,3,10]# remove函数——删除函数a[1,2,3]a.remove(2)print(a)#输出为[1,3]# 列表元素的修改a[1,2,3]a[0]Aprint(a)#输出[A,2,3]# 最大值max与最小值min函数list_1[1,3,6,10,2]print(max(list_1))# 输出 10print(min(list_1))# 输出 1# 求和函数sumlist_1[1,2,3,4,5]print(sum(list_1))# 输出 15# 升序函数list_1[4,2,5,1,3]list_1.sort()print(list_1)# 输出 [1,2,3,4,5]# 降序函数list_1[4,2,1,3,5]list_1.sort(reverseTrue)# 更改reverse参数为True变为降序print(list_1)# 输出 [5,4,3,2,1]元组类型元组介绍元组与列表的相似性与区别元组与列表类似区别在于元组中元素不能修改这提高了代码的安全性和可预测性。元组使用小括号()来定义而列表使用方括号[]。# 定义元组tuple_1(1,2,3,4)元组可以索引访问元素索引从0开始-1表示从末尾开始。tuple_1(1,2,3,4)# 索引访问print(tuple_1[0])# 输出 1print(tuple_1[-1])# 输出 4# 切片print(tuple_1[1:3])# 输出 (2, 3)不元组一旦被定义就不能修改其内容。tuple_1(1,2,3)tuple_1[0]100#输出报错TypeError: tuple object does not support item assignment元组操作# 元组的定义a(1,2,3)print(a)#输出(1,2,3)a(1,)# 元组中只有单一元素的时候需要加“”要不会定义为数值型中的整型# 切片a(1,2,3)a[:-1]# 输出(1, 2)# 计数函数——counta(2,3,4,1,1,1,1)a.count(1)# 输出4# 索引函数——indexprint(a.index(1))# 索引1最先出现的位置输出3集合类型集合介绍集合是一个无序、不重复元素的序列集合中的元素是唯一的。集合不允许有重复的元素它是数学中的集合的实现。集合可以使用大括号{}或者set()函数来创建。# 使用大括号set_1{1,2,3,4}# 使用set()函数set_2set([1,2,3,4])空集合只能使用set()创建因为{}用来创建空字典。# 创建空集合empty_setset()集合的特点无序集合中的元素没有顺序不支持索引和切片操作。不重复集合中的元素是唯一的重复元素会被自动去重。set_1{1,2,2,3,4,4}print(set_1)# 输出 {1, 2, 3, 4}重复元素自动去重常见的集合操作集合支持许多常见的集合操作如交集、并集。set_1{1,2,3}set_2{3,4,5}# 交集print(set1set2)# 输出 {3}# 并集print(set1|set2)# 输出 {1, 2, 3, 4, 5}集合操作# 去重a{1,2,3,1,1}print(a)# 输出{1, 2, 3}集合是不重复的可以用于去重操作# 增加元素a.add(6)print(a)# 输出{1, 2, 3, 6}# 删除元素a{1,2,3,5,6,8}a.remove(6)print(a)# 输出{1, 2, 3, 5, 8}# 删除整个集合dela# 这里集合a就被删除了字典类型字典介绍字典是一种可变容器类型可以存储任意类型的对象。其本质是一种映射关系其元素是键值对。每个键在字典中是唯一的并且必须是不可变类型如数字、字符串、元组等。字典的创建使用大括号{}来创建其中每个元素由键值对组成键和值通过冒号:分隔键值对之间用逗号,分隔创建空字典时可以使用{}。# 创建字典dict_1{name:小明,age:20,height:175}字典的元素存储结构每个键都对应一个值存储形式是(key: value)。键必须是不可变类型如数字、字符串、元组等且唯一值可以是任何类型的数据。通过键可以访问字典中的值。# 访问字典中的值print(dict_1[name])# 输出“小明”print(dict_1[age])# 输出20操作字典操作# 创建a{name:小明,age:20,height:175}# 增加元素a[gender]男# 删除元素dela[gender]# 修改元素a[height]180# 查寻元素print(a[name])# 输出“小明”# 关键字唯一a{name:小明,age:20,height:175name:小刚}# a的name会变为“小刚”这里会把之前的值覆盖# 获取字典的所有键或值dict_1{name:小明,age:20,height:175}keysdict_1.keys()# 获取所有键valuesdict_1.values()# 获取所有值print(keys)print(values)