Python的基础数据类型简介

一、基础数据类型

Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组)
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)

二、Number

number 有4种 int、float、bool、complex(复数)
P3中只有一种整数类型 int,表示为长整型,没有 p2 中的 Long
常用的数值计算方式
加 +
减 -
乘 *
除 / / 得到一个浮点型 //得到一个整数
%取余
** 乘方

三、String

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。

字符串的截取的语法格式如下:
变量[头下标:尾下标]
索引值以 0 为开始值,-1 为从末尾的开始位置
在这里插入图片描述

Python 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串

1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
2、字符串可以用+运算符连接在一起,用*运算符重复。
3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
4、Python中的字符串不能改变。

四、List

列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表
在这里插入图片描述
List 内置了有很多方法,例如 append()、pop() 等等,这在后面会讲到。

注意:
1、List写在方括号之间,元素用逗号隔开。
2、和字符串一样,list可以被索引和切片。
3、List可以使用+操作符进行拼接。
4、List中的元素是可以改变的。

五、元组

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开

元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置。也可以进行截取

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号

注意:
1、与字符串一样,元组的元素不能修改。
2、元组也可以被索引和切片,方法一样。
3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
4、元组也可以使用+操作符进行拼接

六、集合

概念:集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员
方式:可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
注意:集合内重复的元素会被合并
print(a - b) # a 和 b 的差集

print(a | b) # a 和 b 的并集

print(a & b) # a 和 b 的交集

print(a ^ b) # a 和 b 中不同时存在的元素

七、字典

概念:列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的

print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值
构造函数 dict() 可以直接从键值对序列中构建字典
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。

注意:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、创建空字典使用 { }。

数据类型转换

print(int(‘6’))
print(float(‘3’))
print(complex(3,2))
print(str(333))
print(repr(324)) 将对象 x 转换为表达式字符串
print(tuple([‘list’,‘one’,‘two’]))
print(list(‘123123123’))
print(set(‘qweqwe’))
#生成一个不可变的集合
print(frozenset(‘123123’))
print(chr(60))将一个整数转换为一个字符返回值是当前整数对应的 ASCII 字符。

总结

1、string、list 和 tuple 都属于 sequence(序列)
2、对象与变量的关系
赋值操作,本质是创建引用

变量是变量,对象是对象,当将某个对象赋值给某个变量时,可以认为是创建了变量对该对象的引用

变量没有数据类型之说,只有对象有,即变量不是直接代表对象或对象占用的内存空间

Python中,变量无需提前声明,无需指定其数据类型,其表现完全是动态的,其所为的数据类型决定于当前该变量所引用的对象的数据类型

所谓变量对对象的引用,本质是创建了变量指向对象内存空间的指针

对象内存空间,一般最起码有类型和当前被引用次数这两个信息,类型记录了该对象的数据类型,被引用次数记录了该对象内存空间被变量引用的次数

当某对象的被引用次数为0时,Python便会自动回收该对象内存空间

3、type 和 isinstance

type 是用于求一个未知数据类型对象,而 isinstance 是用于判断一个对象是否是已知类型。

type 不认为子类是父类的一种类型,而isinstance会认为子类是父类的一种类型。

可以用 isinstance 判断子类对象是否继承于父类,type 不行。

综合以上几点,type 与 isinstance 虽然都与数据类型相关,但两者其实用法不同,type 主要用于判断未知数据类型,isinstance 主要用于判断 A 类是否继承于 B 类

Guess you like

Origin blog.csdn.net/SKY_PLA/article/details/117739944