以前每天刷头条新闻,感觉头条上都是大神。现在我竟然也在头条上发内容啦,虽然是新手期还是很激动呢。好了,言归正传,今天就接着上一篇的写下Python的基础数据类型。
类型的概念
对于编程语言的学习肯定要从数据类型入手,什么是数据类型?编程的语言具有相通性,而每种语言都有自己的数据类型,是将编程语言变为产品的基础。首先,对于一个数据1011100,改怎么解释呢?同Java等变成语言类型,首先我们要明确它所属于的数据的类型,不同的类型就代表了不同的意思。而程序是有计算机去执行的,计算机的世界是很实在的,程序设计语言不允许语法歧义,因此需要明确数据的类型,这就是类型的作用。
Python语言常用数据类型:
1. 数字类型
分为三种基本的数字类型:整数类型、浮点数类型、复数类型;用type()函数获取数据的类型
1.1整数类型
<php>pow(2,10)=2014pow(2,pow(2,10))=数值可以无限大</php>12345
示例:
整数类型可以是10进制,也可是2进制,也可以是8进制等
- 2048 , 99,-2017
- ox1a,0X19(以0x或0X开头表示16进制)
- ob010,-0B101(以0b或0B开头表示2进制)
- 0o123,-0O56(以0o或0O开头表示8进制)
1.2浮点数类型
带有小数点寄小数的数字,Python中浮点数运算在浮点单元中运算,相比整数更加耗时。与整数类型不同,Python浮点数类型的取值范围存在限制,小数精度也存在限制,这种限制与具体的操作系统有关系。
示例查看当前计算机的浮点数取值范围:10的-308次方,到10的308次方
示例
- 0.0,-66. , -3.1415
- 3e4 , 4.3e-3 , 3.2E5(科学计数法,以10为基数)
1.3复数类型
复数类型和数学额负数类型概念类似:z=a+bj;其中a是实数部分,b是虚数部分,a,b都是浮点数类型,虚数部分有j或J标识
例:z=1.23e-4 +5.6e +3j
z.real获取实数部分,z.imag获取虚数部分
三种数字类型存在一种逐渐“扩展”的关系:
整数》》浮点数》》复数,整数是浮点数的特例,浮点数是复数的特例,不同数字类型可以进行运算,运算结果为最宽类型;
int(),float(),complex(),可相互装换,但不可将复数直接转成浮点数和整数;
2. 字符串类型(用“”或 ’ ‘标识,输出带引号的字符串用 转意符 \)
字符串是一个字符序列,字符串最左端位置标记为0,依次增加。可通过索引位置获取特定位置的字符或字符串;Python同时允许使用负数从字符串右边末尾向左边反向索引,最右侧索引值为-1;
同时,可通过两个索引值确定一个位置范围,返回其中的子串
格式:[:],其中start,end都是整数类型,从start开始end结束,但不包含end位置的字符;
str=”Hello”
greet[0:-3]
输出结果‘He’
字符串可以做加法+(字符串连接,类似java)或乘法(生成一个由其本身字符串重复连接而成的字符串。
例如:
3‘se’得到’sesese’)运算;
len(str)返回字符串str的长度
str(123)大多数数据类型都可以通过str()函数转成字符串;
3. 元组Tuple类型
元组是包含多个元素的类型,元素之间用逗号分割。
例如:t = 123,456,’del’
元组可以是空的,t2=0
元组可只包含一个元素,t3=123,
元组外侧可以用括号,也可不用;
元组中的元素可以是不同类型的;
一个元组也可以作为另一个元组的一个元素;此时,作为元素的元组需要加括号,从而避免歧义;
例:
t4 = 123,3345,(133,”aaaa)
元组中各元素有先后关系,类似字符串类型,可通过索引访问元组中的某一元素,索引从0开始;同样也可以通过区间获取元组中的部分元素:
例如:
t4[1:3]
元组也可以进行+和*的运算
元组中的元素定义后不可修改,也不能删除;
4. 列表List类型
列表用 [ ] 标识,是 python 最通用的复合数据类型。列表中值的切割也可以用到变量 [头下标:尾下标],就可以截取相应的列表,从左到右索引默认 0 开始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌套)。
列表list是有序的元素集合,操作类似与元组。比如:加号 + 是列表连接运算符,星号 * 是重复操作。但是列表大小没有限制,且可随时修改 列表的操作和java的类似,但语法有所差异,从一些学习网站上获取常用的一些操作函数:
5.集合类型Set
集合(set)是一个无序不重复元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典;
6.字典类型Dict
字典是一种映射类型,字典用"{ }"标识,它是一个无序的键(key) : 值(value)对集合。Dict类型类似于Java的map类型,Python中内置了对字典(dict)的支持,使用键-值(key-value)存储,具有极快的查找速度。
例如:d = {'a': 98, 'b': 90, 'c': 96}
字典的常用操作也和列表比较类似,但是列表是有序的对象结合,字典是无序的对象集合。
同时和list比较,dict的优点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
而list优点:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。
所以,dict是用空间来换取时间的一种方法。
注意:每个键与值必须用冒号隔开(:),每对用逗号分割,整体放在花括号中{}。且在同一个字典中,键(key)必须是唯一的,但值则不必;值可以取任何数据类型,但必须是不可变的,如字符串,数或元组。
Python内置的其他常用操作函数
cmp(dict1, dict2) 比较两个字典元素。
len(dict) 计算字典元素个数,即键的总数。
str(dict) 输出字典可打印的字符串表示。
type(variable) 返回输入的变量类型,如果变量是字典就返回字典类型。
dict.copy() 返回一个字典的全复制
dict.fromkeys() 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
dict.get(key, default=None) 返回指定键的值,如果值不在字典中返回default值
dict.has_key(key) 如果键在字典dict里返回true,否则返回false
dict.items() 以列表返回可遍历的(键, 值) 元组数组
dict.keys() 以列表返回一个字典所有的键
dict.setdefault(key, default=None) 和get()类似, 但如果键不已经存在于字典中,将会添加键并将值设为default
dict.update(dict2) 把字典dict2的键/值对更新到dict里
dict.values() 以列表返回字典中的所有值
到此,基本数据类型就简单的介绍完了,数据类型的操作知识点比较多而零散,需要不断的在练习中去熟悉,不能单纯的记忆,技术前期还是需要一定的代码量做支撑和理解的。小编也是一边学习一边编写,有什么不对的地方各位老铁下方留言哈,有什么后期不断跟进新的学习哦,愿技术发展而我们永不止步...