Python3 基本数据类型
Python3 基本数据类型
Python中变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的”类型”是变量所指的内存中对象的类型。
标准数据类型
python3中有6个标准的数据类型
- Number(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Set(集合)
- Dictionary(字典)
Python3的6个数据类型中:
- 不可变数据(3个):Number(数字),String(字符串),Tuple(元组);
- 可变数据(3个):List(列表),Dictionary(字典),set(集合)
Number
python3支持 int,float,bool,complex(复数)。
像大多数语言一样,数值类型的赋值核计算都是很直观的。内置的type()函数可以用来查询变量所指的对象类型。
还可以用isinstannce来判断
isinstance和type的区别在于:
- type()不会认为子类是一种父类型。
- isinstance()会认为子类是一种父类型。
type 是用于求一个未知数据类型对象,而 isinstance 是用于判断一个对象是否是已知类型。
type 不认为子类是父类的一种类型,而isinstance会认为子类是父类的一种类型。
可以用 isinstance 判断子类对象是否继承于父类,type 不行。
综合以上几点,type 与 isinstance 虽然都与数据类型相关,但两者其实用法不同,type 主要用于判断未知数据类型,isinstance 主要用于判断 A 类是否继承于 B 类
注意:
- python可以同时为多个变量赋值。
- 一个变量可以通过赋值指向不同类型的对象。
- 数值的除法包括两个运算符:/返回一个浮点数,//返回一个整数。
- 在混合计算时,python会把整型转换成为浮点数。
String
python中的字符串用单引号‘或双引号“括起来,同时使用反斜杠\转义特殊字符。
字符串的截取的语法格式如下:
1 | 变量[头下标:尾下标] |
Python 使用反斜杠 \转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串。
与c字符串不同的是,python字符串不能被改变。向一个索引位置赋值,会发生错误。
注意:
- 反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
- 字符串可以用+运算符链接在一起,使用*运算符重复。
- Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
- python中的字符串不能被改变。
List
List是python中使用最为频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中的元素可以不相同,他支持数字,字符串甚至可以包含列表。
列表是写在方括号**[]**之间,用逗号分隔开的元素列表。
1 | ist = [ 'abcd', 786 , 2.23, 'runoob', 70.2 ] |
与字符串不一样的是,列表中的元素是可以改变的。
注意:
- List写在方括号之间,用逗号分隔开。
- 和字符串一样,list可以被索引和切片。
- List可以使用+操作符进行拼接。
- List中的元素是可以改变的。
Python列表截取可以接受第三个参数,参数作用是截取的步长。
1 | letters = ['r','u','n','o','o','b'] |
如果第三个参数为负数表示逆向读取,以下实例用于翻转字符串:
1 | letters[-1::-1] |
Tuple
元组与列表类似,不同之处在于元组的元素不能修改。元组写在小括号()里,元素之间用个逗号隔开。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
1 | tup1 = () # 空元组 |
一般来说,函数的返回值一般为一个。而函数返回多个值的时候,是以元组的方式返回的。
1 | In [82]: def exm(a,b): |
但是我们要是将返回改为return [a,b]就是列表了。
1 | In [91]: def exm(a,b): |
python中的函数还可以接受可变长参数,比如以“*”开头的参数名,会将所有的参数收集到一个元组上。
1 | In [84]: def test(*args): |
注意:
- 与字符串一样,元组的元素不能修改。
- 元组也可以被索引和切片,方法一样。
- 注意构造包含0或者1个元素的元组的特殊语法规则。
- 元组也可以使用+操作符进行拼接。
Set
集合是由一个或者数个形态各异的大小整体组成的,构成集合的事物或对象称为元素或是成员。
基本功能是成员关系测试和删除重复元素。
可以使用大括号**{}或者set()**函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典。
1 | sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'} |
Dictionary
字典是python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用标识**{}**,它是一个无序的 键(key):值(value)的集合。
键(key)必须使用不可变类型。
在同一个字典中,键必须是唯一的。
1 | tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'} |
构造函数dict()可以直接从键值对序列中构建字典如下:
1 | dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) |
**{x: x*2 for x in (2, 4, 6)}* 该代码使用的是字典推导式,更多推导式内容可以参考:Python 推导式。
另外,字典类型也有一些内置的函数,例如 clear()、keys()、values() 等。
python中的字典是使用了一个称为散列表(hashtable)的算法,也就是我们说的哈希表。
注意:
- 字典是一种映射类型,它的元素是键值对。
- 字典的关键字必须为不可变类型,且不能重复。
- 创建空字典使用 **{}**。