Python基本数据类型详细介绍


Posted in Python onMarch 11, 2014

1、空(None)
表示该值是一个空对象,空值是Python里一个特殊的值,用None表示。None不能理解为0,因为0是有意义的,而None是一个特殊的空值。
2、布尔类型(Boolean)
在Python中,None、任何数值类型中的0、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了__nonzero__()或__len__()方法且方法返回0或False,则其实例也被当作False,其他对象均为True
布尔值和布尔代数的表示完全一致,一个布尔值只有True、False两种值,要么是True,要么是False,在Python中,可以直接用True、False表示布尔值(请注意大小写),也可以通过布尔运算计算出来:

>>> True
True
>>> False
False
>>> 3 > 2
True
>>> 3 > 5
False

布尔值还可以用and、or和not运算。

1).and运算是与运算,只有所有都为True,and运算结果才是True:

>>> True and True
True
>>> True and False
False
>>> False and False
False

2).or运算是或运算,只要其中有一个为True,or运算结果就是True:
>>> True or True
True
>>> True or False
True
>>> False or False
False

3).not运算是非运算,它是一个单目运算符,把True变成False,False变成True:
>>> not True
False
>>> not False
True

4).布尔值经常用在条件判断中,比如:
if age >= 18:
    print 'adult'
else:
    print 'teenager'

3、整型(Int)
在Python内部对整数的处理分为普通整数和长整数,普通整数长度为机器位长,通常都是32位,超过这个范围的整数就自动当长整数处理,而长整数的范围几乎完全没限制
Python可以处理任意大小的整数,当然包括负整数,在程序中的表示方法和数学上的写法一模一样,例如:1,100,-8080,0,等等。
4、浮点型(Float)
Python的浮点数就是数学中的小数,类似C语言中的double。
在运算中,整数与浮点数运算的结果是浮点数
浮点数也就是小数,之所以称为浮点数,是因为按照科学记数法表示时,一个浮点数的小数点位置是可变的,比如,1.23x109和12.3x108是相等的。浮点数可以用数学写法,如1.23,3.14,-9.01,等等。但是对于很大或很小的浮点数,就必须用科学计数法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以写成1.2e-5,等等。
整数和浮点数在计算机内部存储的方式是不同的,整数运算永远是精确的(除法难道也是精确的?是的!),而浮点数运算则可能会有四舍五入的误差。
5、字符串(String)
Python字符串即可以用单引号也可以用双引号括起来,甚至还可以用三引号括起来
字符串是以''或""括起来的任意文本,比如'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。

如果字符串内部既包含'又包含"怎么办?可以用转义字符\来标识,比如:

'I\'m \"OK\"!'

表示的字符串内容是:
I'm "OK"!

转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也要转义,所以\\表示的字符就是\,可以在Python的交互式命令行用print打印字符串看看:
>>> print 'I\'m ok.'
I'm ok.
>>> print 'I\'m learning\nPython.'
I'm learning
Python.
>>> print '\\\n\\'
\
\

如果字符串里面有很多字符都需要转义,就需要加很多\,为了简化,Python还允许用r''表示''内部的字符串默认不转义,可以自己试试:
>>> print '\\\t\\'
\       \
>>> print r'\\\t\\'
\\\t\\

如果字符串内部有很多换行,用\n写在一行里不好阅读,为了简化,Python允许用'''...'''的格式表示多行内容,可以自己试试:
>>> print '''line1
... line2
... line3'''
line1
line2
line3

上面是在交互式命令行内输入,如果写成程序,就是:
print '''line1
line2
line3'''

多行字符串'''...'''还可以在前面加上r使用,请自行测试。
6、列表(List)
用符号[]表示列表,中间的元素可以是任何类型,用逗号分隔。list类似C语言中的数组,用于顺序存储结构
内建函数:
append(x)追加到链尾
extend(L)追加一个列表,等价于+=
insert(i,x)在位置i插入x,其余元素向后推,如果i大于列表长度,就在最后添加,如果i小于0,就在最开始添加
remove(x)删除第一个值为x的元素,如果不存在会抛出异常
reverse()反转序列
pop([i])返回并删除位置为i的元素,i默认为最后一个元素
index(x)返回x在列表中第一次出现的位置,不存在则抛出异常
count(x)返回x出现的次数
sort()排序
len(List)返回List的长度
del list[i]删除列表list中指定的第i+1个变量
切片
切片指的是抽取序列的一部分,其形式为:list[start:end:step]。其抽取的规则是:一般默认的步长为1,但也可自定义。

7、元组(Tuple)
元组是和列表相似的数据结构,但它一旦初始化就不能更改,速度比list快,同时tuple不提供动态内存管理的功能,需理解一下规则:
tuple可以用下标返回一个元素或子tuple
表示只含有一个元素的tuple的方法是:(d,)后面有个逗号,用来和单独的变量相区分
8、集合(Set)
集合是无序的,不重复的元素集,类似数学中的集合,可进行逻辑运算和算术运算
9、字典(Dict)
字典是一种无序存储结构,包括关键字(key)和关键字对应的值(value)。字典的格式为:dictionary = {key:value}。关键字为不可变类型,如字符串、整数、只包含不可变对象的元组,列表等不可作为关键字。如果列表中存在关键字对,可以用dict()直接构造字典
Python 相关文章推荐
使用Node.js和Socket.IO扩展Django的实时处理功能
Apr 20 Python
python 爬取微信文章
Jan 30 Python
python 实现数组list 添加、修改、删除的方法
Apr 04 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
python3 拼接字符串的7种方法
Sep 12 Python
nohup后台启动Python脚本,log不刷新的解决方法
Jan 14 Python
python2.7的flask框架之引用js&css等静态文件的实现方法
Aug 22 Python
使用pyshp包进行shapefile文件修改的例子
Dec 06 Python
python matplotlib实现将图例放在图外
Apr 17 Python
Python基于smtplib协议实现发送邮件
Jun 03 Python
Python制作一个仿QQ办公版的图形登录界面
Sep 22 Python
Jupyter notebook 不自动弹出网页的解决方案
May 21 Python
常用python数据类型转换函数总结
Mar 11 #Python
python读取csv文件示例(python操作csv)
Mar 11 #Python
Python help()函数用法详解
Mar 11 #Python
python操作日期和时间的方法
Mar 11 #Python
Python 字符串操作方法大全
Mar 11 #Python
Python去掉字符串中空格的方法
Mar 11 #Python
使用python 获取进程pid号的方法
Mar 10 #Python
You might like
自定义php类(查找/修改)xml文档
2013/03/26 PHP
php输出全球各个时区列表的方法
2015/03/31 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
php5.3后静态绑定用法详解
2016/11/11 PHP
javascript 表格排序和表头浮动效果(扩展SortTable)
2009/04/07 Javascript
jquery 框架使用教程 AJAX篇
2009/10/11 Javascript
JQERY limittext 插件0.2版(长内容限制显示)
2010/08/27 Javascript
JS实现图片预加载无需等待
2012/12/21 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JS判断图片是否加载完成方法汇总(最新版)
2016/05/13 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
2017/02/23 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
vue中实现图片和文件上传的示例代码
2018/03/16 Javascript
关于TypeScript模块导入的那些事
2018/06/12 Javascript
axios简单实现小程序延时loading指示
2018/07/30 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
为vue项目自动设置请求状态的配置方法
2019/06/09 Javascript
jquery将json转为数据字典的实例代码
2019/10/11 jQuery
Postman环境变量全局变量使用方法详解
2020/08/13 Javascript
JavaScript中的执行环境和作用域链
2020/09/04 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
在vue中使用inheritAttrs实现组件的扩展性介绍
2020/12/07 Vue.js
[01:59]翻天覆地,因你而变,7.20版本地图更新速览
2018/11/24 DOTA
python中getattr函数使用方法 getattr实现工厂模式
2014/01/20 Python
零基础写python爬虫之爬虫编写全记录
2014/11/06 Python
Python THREADING模块中的JOIN()方法深入理解
2015/02/18 Python
浅谈Python中的数据类型
2015/05/05 Python
Python中elasticsearch插入和更新数据的实现方法
2018/04/01 Python
opencv实现图片模糊和锐化操作
2018/11/19 Python
idea2020手动安装python插件的实现方法
2020/07/17 Python
HTML5之WebGL 3D概述(上)—WebGL原生开发开启网页3D渲染新时代
2013/01/31 HTML / CSS
Mytheresa美国官网:德国知名的女性奢侈品电商
2017/05/27 全球购物
幼儿园家长评语大全
2014/04/16 职场文书
刑事法律意见书
2015/06/04 职场文书
CSS中Single Div 绘图技巧的实现
2021/06/18 HTML / CSS
FP-growth算法发现频繁项集——构建FP树
2021/06/24 Python