在 Python 中,变量赋值后才会被创建,它没有类型,我们所说的“类型”是变量所指的内存中对象的类型。
Python3 中有六个标准的数据类型,不可变数据:Number(数字: int、float、bool、complex)、String(字符串)、Tuple(元组);可变数据:List(列表)、Set(集合)、Dictionary(字典)。
内置函数 type() 、isinstance()可以用来查询变量所指的对象类型(区别:type()不会认为子类是一种父类类型,isinstance()会认为子类是一种父类类型)。
Number
1)Python3 只有一种整型 int,表示为长整型,没有Long类型;
2)Python3 中,把 True 和 False 定义为关键字,但它们的值还是 1 和 0,可以和数字相加;
3)数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数;
4)在混合计算时,Python会把整型转换成为浮点数;
5)Python 还支持复数,复数由实数部分和虚数部分构成,可以用a + bj 或 complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
String
1)字符串有两种索引方式,从左往右以0开始,从右往左以-1开始;
2)加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,紧跟的数字为复制的次数;
3)Python 使用反斜杠()转义特殊字符,如果不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串;
4)Python 没有char类型,一个字符就是长度为1的字符串;
5)反斜杠()可以作为续行符,表示下一行是上一行的延续,也可以使用 """...""" 或者 '''...''' 跨越多行;
6)Python中的字符串不能改变;
7)字符串翻转:str[-1::-1] 或 str[::-1]。
List
1)列表有两种索引方式,从左往右以0开始,从右往左以-1开始;
2)加号 + 是列表连接运算符,星号 * 是重复操作;
3)列表中的元素是可以改变的;
4)列表翻转:list[-1::-1] 或 list[::-1]。
Tuple
1)元组有两种索引方式,从左往右以0开始,从右往左以-1开始;
2)加号 + 是列表连接运算符,星号 * 是重复操作;
3)元组的元素不可改变,但它可以包含可变的对象,如List列表;
4)元组只有一个元素时,需要在元素后添加逗号;
5)string、list 和 tuple 都属于 sequence(序列);
6)元组翻转:tup[-1::-1] 或 tup[::-1]。
Set
1)可以使用大括号 { } 或者 set() 函数创建集合;
2)创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典;
3)集合运算:a - b(a 和 b 的差集)、a | b(a 和 b 的并集)、a & b(a 和 b 的交集)、a ^ b(a 和 b 中不同时存在的元素)。
Dictionary
1)在同一个字典中,键(key)必须是唯一的;
2)字典的键(key)必须使用不可变类型;
3)字典是一种映射类型,字典用 { } 标识,它是一个无序的键(key):值(value) 的集合,元素是通过键来存取的,而不是通过偏移存取;
4)创建空字典使用{}。
Python 数据类型转换
函数 | 描述 |
int(x[,base]) | 将x转换成一个整数,x为数字或字符串,base为进制数,默认十进制 |
float(x) | 将x转换成一个浮点数,x为整数或字符串 |
complex([real[,imag]]) | 创建一个复数,real为实部,imag为虚部(complex("1+2j")的"+"号两边不能有空格) |
str(x) | 将对象x转换成字符串 |
repr(x) | 将x对象转换成表达式字符串(转化为供解释器读取的形式) |
eval(str) | 用来计算在字符串表达式中的有效Python表达式,并返回一个对象(eval('2 + 1')返回3) |
tuple(s) | 将序列s转换成一个元组 |
list(s) | 将序列s转换成一个列表 |
set(s) | 将序列s转换成一个可变集合 |
dict(d) | 创建一个字典,d 必须是一个 (key, value)元组序列 |
frozenset(s) | 将序列s转换成一个不可变集合,不能再添加或删除任何元素 |
chr(x) | 将一个整型转换成一个字符串 |
ord(x) | 将一个字符转换成它的整数值 |
hex(x) | 将一个整数转换成十六进制字符串 |
oct(x) | 将一个整数转换成八进制字符串 |