目录
因面试遇到这个问题竟一时语塞,因此记录之。
首先说明,python是一种动态类型的语言,定义变量的时候是不用显式指定变量类型的
Python3 基本数据类型 | 菜鸟教程 (runoob.com)
一、python3标准数据类型
一共有六种:Number(数字),String(字符串),List(列表),Tuple(元组),Set(集合),Dictionary(字典),接下来依次说明这六种类型。
二、Number数字类型
python3支持int,float,bool,complex等几种数字类型
内置函数type和isinstance都可以用来判断某个变量是否是给定的某个类型。
用法是 typyie("变量名","类型名"),如果变量属于给定类型返回true,否则返回false。
不同之处在于instance会认为子类也是一种父类类型,而type认为子类不是父类类型。
在python3中,bool是int的子类,True就是1,False就是0,True和False可以直接参加int类型数字的运算。
另外需要注意的一点是python中的赋值语句相当于是创建一个原变量的引用,而非拷贝。
三、String字符串
python中字符串用 ‘ ’ 或者 “ ” 括起来,使用 \ 转义特殊字符。python中没有单独的字符类型,一个字符就是一个长度为1的字符串。
python中字符串有两种索引方式,即正序索引与逆序索引,正序索引从0开始,逆序索引从-1开始。
截取字符串用 变量[头索引,尾索引],其中包含投索引指向的字符,不包含尾索引指向的字符,即前闭后开区间。
\ 可以用来使字符转义,使用r可以让反斜杠失效,即不发生转义。
此外 \ 还可以作为续行符使用,表明下一行语句与本行是连接着的,但是要注意本行中 \ 后边不能有任何字符。也可以用 '''' '''' 作为跨行的换行符。
输出结果是字符串 “ab”
此外需要注意python中的字符串是不能改变的,即不能向字符串的某个索引位置赋新值,但是两个字符串可以相加(用 +)生成第三个字符串,字符串也可以与数字相乘(用 *),生成一个把该字符串重复n遍的字符串,n是整数乘数。+ 是字符串连接元素运算符,* 是重复字符串运算符。
格式化字符串时候的 f-string方法需要了解一下。python字符串格式化_12097790的技术博客_51CTO博客
四、List列表
类似C中的数组,列表中元素写在 [ ] 中,且用逗号分隔开。列表和字符串一样可以正序或者逆序索引,以及进行截取操作。需要注意的是,python中List中的元素类型不一定相同。且 + 和 * 也可以用于列表的连接和重复。
与python字符串的不同之处是,List中的元素是可以改变的。
在python列表切片的时候,也可以使用三个参数,第三个参数表示步长。如果第三个参数是负的,表示逆序切片。
五、Tuple元组
与列表相似,但是元组中元素不允许修改。元组中的元素数据类型也可以各不相同,元组中元素甚至可以是列表。元组也可以顺序逆序索引,以及切片。
构建0个或单个元素的元组是特殊的。
六、Set集合
用一个大括号{ } 或者set函数来创建集合。但是创建空集合 必须用set函数,因为{ } 空大括号是用来创建一个空字典的。
集合的基本功能有两个,一个是成员测试,一个是去除重复元素。
Set是集合,当然可以进行交并差集运算。
七、Dictionary字典
列表是有序的对象集合,字典是无序的对象集合。区别在于列表中元素是通过索引来存取,但是字典是无序的,所以也就没有索引,字典是通过键来存取的,字典中存储的都是键值对,字典是一种映射类型。字典用大括号表示。
需要注意的是字典的构造过程,出了上图中一个一个插入键值对以外,还有三种常用方法:
第一种是用元组列表来初始化字典,即用一个列表来初始化一个字典,而这个列表中的元素都是元素,而每个元素都一定包含两个元素,其中第一个元素是键,第二个元素是对应的值。
第二种是利用一个变量x有规律地构建字典。
第三种是利用等号来联系起来键值对,从而构建字典。