大家好,在上一次推送中,我们一起学习了Python数据结构中的整数int、浮点数float以及复数,今天我们一起来学习其他的一些数据类型吧。
一、逻辑值
1.逻辑类型:bool.
(1)用来作为判断条件,是逻辑推理的基础:仅有两个值:True、False.
(2)数值的比较得到逻辑值:3 > 4。
(3)逻辑值也有自己的运算:and,or,not.
(4)可以让计算机根据情况自动作出选择,更加聪明。
2.逻辑值
(1)逻辑值用来配合if/while等语句做条件判断。
(2)其它数据类型可以转换为逻辑值:数值——0与非0,字符串——空串与非空串,容器——空容器与非空容器。None是False.
二、字符串:str
字符来自一个国际标准的大字符集Unicode,每种语言的字符都有一个编码,包括表情符号,可以用函数在编码和字符之间转换,chr:编码到字符,ord:字符到编码。
文字字符构成的序列(“串”),可以表示姓名、手机号、快递地址、菜名、诗歌、小说。用双引号或者单引号都可以表示字符串,多行字符串用三个连续单引号表示。字符串操作:+连接、*复制、len长度,[start:end:step]用来提取一部分(切片slice)。
一些高级操作:split——分割;join——合并;upper/lower/swapcase——大小写相关;ljust/center/rjust——排版左中右对齐;replace——替换子串。
类型转换。可以把一个数据对象转换类型,得到新的数据对象,如"8848","8844.43":字符串,8848:整数,8844.43:浮点数。用类型名称可以直接转换,字符串转数值:int()、float(),数值转字符串:str()、bin()、oct()、hex().
三、列表和元组
Python中有几种类型是一系列元素组成的序列,以整数作为索引。字符串str是一种同类元素的序列。列表list和元组tuple则可以容纳不同类型的元素,构成序列。元组是不可更新(不可变)序列。字符串也是不能再更新的序列。列表则可以删除、添加、替换、重排序列中的元素。
创建列表:[ ]或者list()。
创建元组:( )或者tuple()。
用索引[n]获取元素(列表可变)。
+:连接两个列表/元组。
*:复制n次,生成新列表/元 组• len():列表/元组中元素的个数。
in:某个元素是否存在
[start : end : step]:切片
列表list的其他方法
可变类型的变量引用情况
由于变量的引用特性,可变类型的变量操作需要注意。多个变量通过赋值引用同一个可变类型对象时通过其中任何一个变量改变了可变类型对象,其它变量也看到了改变。
alist = [1,2,3,4]
blist = alist
blist[0] = 'abc' • clist = alist[:]
Clist[0] = None
常用的连续序列生成器:range函数
range(n),从0到n-1的序列;range(start, end),从start到end-1的序列;range(start, end, step);从start到end-1,步长间隔step,step可以是负数。range函数返回range类型的对象,可以直接当做序列用,也可以转换为list或者tuple等容器类型。
四、集合set
集合是不重复元素的无序组合,用set()从其它序列转换生成集合。集合的常见操作in:判断元素是否属于集合;union():并集;&, intersection() :交集;-, difference() :差集;^, symmetric_difference() :异或;<=,=,>:子集/真子集/超集/真超集。
add(x):集合中添加元素;remove(x):删除指定元素;pop():删除集合中任意元素并返回其值;clear():清空集合成为空集。如果经常需要判断元素是否在一组数据中,这些数据的次序不重要的话,推荐使用集合,可以获得比列表更好的性能。
五、字典dict
字典是通过键值key来索引元素value,而不是象列表是通过连续的整数来索引。字典是可变类型,可以添 加、删除、替换元素。字典中的元素value没有顺序,可以是任意类型。字典中的键值key须是不可变类型(数值/字符串/元组)。
建立大型数据结构
嵌套列表:列表的元素是一些列表;alist[i][j];字典的元素可以是任意类型,甚至也可以是字典;bands={'Marxes':['Moe','Curly']};字典的键值可以是任意不可变类型,例如用元组来作为坐标,索引元素;poi={(100,100):'bus stop'}。
获取输入:input函数
用户给程序的数据在他脑子里,如何告诉计算机?input函数通过键盘获取用户输
入的字符串以回车符作为输入结束,一行可以加一个提示符,可以把得到的字符串直接转换成其他数据类型。
打印输出:print函数
计算机把处理结果反馈给用户 • 用print在屏幕上显示数据对象或者变量的值print(v1, v2, v3, ...);格式化字符串f-strings;f"Hello, {name}!";f"{name}, you have tried {n} times.";可选的参数,sep=" ", end="\n"。
练一练
•写一个完整的程序tc.py
•要求输入两个直角边长度a, b
•打印输出斜边上的高h,保留小数点后2位(打印输出如何保留小数点后位数?例:c=math.sqrt()
print(f”c = {c:.2f}”))