文章目录
Python基本数据类型
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
del 语句可以删除列表的元素,不能删除元组的元素。但是可以删除整个元组
Number(数字)
int(长整型),float(浮点型),bool(布尔型),complex(复数)
内置的 type() 函数可以用来查询变量所指的对象类型。
Isinstance(变量,类型)可以判断变量是否为某一种数据类型
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
注意:
- Python3 中,把 True 和 False 定义成关键字了,但它们的值还是 1 和 0,它们可以和数字相加。
- 一个变量可以通过赋值指向不同类型的对象。
- 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。
- 在混合计算时,Python 会把整型转换成为浮点数。
- Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b)表示, 复数的实部 a 和虚部 b 都是浮点型
String(字符串)
- 反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。
- 字符串可以用+运算符连接在一起,用*运算符重复。
- Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以-1 开始。
- Python 中的字符串不能改变。
List(列表)
python 中[a:b]都是左闭右开
列表中可以包含不同类型的数据(包括它本身,二维)
列表和字符串不一样的是,列表的元素可以被改变
方法 | 描述 |
---|---|
list.append(x) | 把一个元素添加到列表的结尾,相当于 a[len(a):] = [x]。 |
list.extend(L) | 通过添加指定列表的所有元素来扩充列表,相当于 a[len(a):] = L。 |
list.insert(i, x) | 在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前,而 a.insert(len(a), x) 相当于 a.append(x) 。 |
list.remove(x) | 删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。 |
list.pop([i]) | 从列表的指定位置移除元素,并将其返回。如果没有指定索引,a.pop()返回最后一个元素。元素随即从列表中被移除。(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在 Python 库参考手册中遇到这样的标记。) |
list.clear() | 移除列表中的所有项,等于del a[:]。 |
list.index(x) | 返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。 |
list.count(x) | 返回 x 在列表中出现的次数。 |
list.sort() | 对列表中的元素进行排序。 |
list.reverse() | 倒排列表中的元素。 |
list.copy() | 返回列表的浅复制,等于a[:]。 |
将列表当做堆栈使用
列表方法使得列表可以很方便的作为一个堆栈来使用,堆栈作为特定的数据结构,最先进入的元素最后一个被释放(后进先出)。用 append() 方法可以把一个元素添加到堆栈顶。用不指定索引的 pop() 方法可以把一个元素从堆栈顶释放出来。例如:
>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]
Tuple(元组)
元组与列表相似,不同之处在于元组的元素不能被修改。元组写在小括号里().元素之间用逗号隔开。元组里的元素类型也可以不相同。
元组与字符串类似,可以被索引且下标索引从 0 开始,-1 为从末尾开始的位置。也可以进行截取。其实,可以把字符串看作一种特殊的元组。
虽然 tuple 的元素不可改变,但它可以包含可变的对象,比如 list 列表。
对于 0 和 1 个元素的元组有特殊的语法
tup1 = () #空元组
tup2 = (20,) #一个元素,需要在元素后添加逗号
string,list 和 tuple 都属于 sequence(序列)
元组里的元素可以添加,切片,但是和字符串一样不能被修改。如果元组里的元素本身可以被修改(列表),那么可以被修改。
Set(集合)
集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
集合推导式
a = {x for x in 'asdfasdqwe' if x not in 'asd'}#集合推导式
方法 | 描述 |
---|---|
s.add(x) | 添加 x 到集合中,若集合中已经有了 x,则不进行任何操作。 |
s.update(x) | 也可以添加元素,而且可以是列表、元组、字典。 |
remove(x) | 可以把 x 元素从集合 s 中移除,如果元素不存在,则会发生错误 。 |
discard(x) | 也可以把 x 元素从集合 s 中移除,如果元素不存在,不会发生错误。 |
Pop() | 随机删除集合中的一个元素 |
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
student = {'1','2','3','2','3'}
print(student)
#输出集合,重复的元素被自动去掉。结果为{'1','2','3'}
if '2' in student:
print('2 在集合中')
else :
print('2 不在集合中')
#set 可以进行集合运算
a = set('sadqwetruv')
b = set('asdw')
print(a)
print(a - b) #a 和 b 的差集
print(a | b) #a 和 b 的并集
print(a & b) #a 和 b 的交集
print(a ^ b) #a 和 b 中不同时存在的元素
Dictionary(字典)
列表是有序的对象集合,而字典是无序的对象集合。两者之间的区别在于:字典中的元素是通过键来存取的,而不是通过偏移存取的。
.del 也可以删除字典元素或者整个字典对象
.clear()清空字典
字典键/字典值,字典值可以是任何 python 对象。字典键不允许同一个键出现两次,创建时同一个键被赋值两次,则后一个值会被记住。
由于字典键不可变,所以它可以是数字,字符串,元组。但是列表不可以当做字典键,
注意:
- 字典是一种映射类型,它的元素是键值对,字典用{}标识,它是无序的 键(key) : 值(value) 的集合。
- 键(key)必须使用不可变类型。在同一个字典中,键(key)必须是唯一的,不能重复
- 创建空字典使用{}
dict([('Runoob',1),('Google',2),('Taobao',3)])
#输出{'Runoob':1,'Google':2,'Taobao':3}
{x:x**2 for x in (2,4,6)}
#输出{2:4,4:16,6:36}
dict('Runoob'=1,'Google'=2,'Taobao'=3)
#输出{'Runoob':1,'Google':2,'Taobao':3}
Python 数据类型转换
函数 | 描述 |
---|---|
int(x) | 将 x 转换为一个整数 |
float(x) | 将 x 转换到一个浮点数 |
complex(real) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算字符串中的有效 Python 表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为元组 |
list(s) | 将序列 s 转换为一个元组 |
set(s) | 将 s 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个(key,value)元组序列 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |