二、Python 数据类型
计算机是用来辅助人类工作的,能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型,在程序设计中映射了现实世界的分类,以便于抽象的分析
序列:不是单一的数据类型,指列表,字符串,元组三个类型,可以通过索引操作符和切片操作符将序列部分项目取出。(Python中还包括其他三个类型的序列:Unicode字符串,buffer对象和xrange对象,在此先不讨论)
索引操作符可以从序列中取出特定的一个项目
切片操作符可以从序列中取出部分项目,即将序列切片
序列的基本操作:
len(): 获取序列的长度
>>>len('abc')
3
+: 序列的拼接
>>> "ab"+"cd"
'abcd'
*: 重复序列元素
>>>"#"*5
'#####'
in: 判断元素是否在序列中
>>>"aaa" in "aaabbb"
True
not in: 判断元素是否不在序列中
>>>"aaa" not in "aa"
True
max(): 取得序列中最大值
>>>max("")
''
min(): 取得序列中最小值
>>>mix("")
''
cmp(): 比较2个序列是否相同
>>>cmp("","")
1
>>>cmp("","")
-1
>>>cmp("","")
0
type():返回数据的类型
>>>type("abc")
<type 'str'>
>>>type(1)
<type 'int'>
在Python中,能够直接处理的数据类型有以下几种:
2.1 数值型
2.1.1 整型(int):范围-2147483648~2147483647
2.1.2 长整型(long)(L):比int范围更广
2.1.3 浮点型(float):小数
2.1.4 复数型(complex)(虚部j):
2.2 字符型
字符串是以''或""括起来的任意文本,定义时使用单引号与双引号将字符包起来,使用哪种符号没有任何区别;需要注意,''或""本身只是一种表示方式,不是字符串的一部分
如果字符中包括单引号或双引号,可以单引号和双引号交替使用,解释器会识别最开始的符号是单引号还是双引号,找到到与之匹配的最近的相同符号来结束,也可以使用"\"来转移使用符号本身。
>>>print 'a'
a >>>print "a"
a >>>print 'Tiven said "he will work hard."'
Tiven said "he will work hard." >>>print "Tiven said 'he will work hard.'"
Tiven said 'he will work hard.' >>>print "Tiven said \"he will work hard\""
Tiven said "he will work hard"
三重引号赋值("""...""")时则会将字符串以原始格式(或者是想要的显示格式)赋值,可以将格式化参数都保存下来,如我想输入一首古诗:
>>> stra=""" 春晓 春眠不觉晓,处处闻啼鸟。 夜来风雨声,花落知多少。 """
>>> print stra 春晓 春眠不觉晓,处处闻啼鸟。 夜来风雨声,花落知多少。
记录stra值的源码为’\t\t春晓\n春眠不觉晓,处处闻啼鸟。\n夜来风雨声,花落知多少。’
字符串可以通过索引(index从左向右从0开始定位,其实可以使用负数,但是不建议使用)取出每一个字符,取出两个或多个则可以使用stra[0]+stra[1],可以使用stra[开始index:结束index]需要注意结果不包括结束index位置的字符,开始index默认值为0,结束index默认值为字符最大index+1,也可以使用步长值,stra[::1]如果为1,则为一步一取,如果是2,则两步一取,如果是n则n步一取
如果想将取得的字符串反过来写,则可以使用负数的index和步长值
>>>strexample='thisisastr'
>>>strexample[0]
't'
>>>strexample[0:5]
'thisi'
>>>strexample[0:5:2]
'tii'
>>>strexample[-1:-5:-1]
'rtsa'
2.3 列表(list)
处理一组有序项目的数据结构,即可以在一个列表中存储一个序列的项目,列表是可变类型的数据(可以对列表中各项目进行重新赋值,在内存中的地址位不变,但是内容变)
列表通过"[]"中括号中用逗号分隔的项目定义(可以存储不同类型的值)
>>>list1=[1,2,3]
>>>list1=["","",""] #一般列表
>>>list1=[] #空列表
列表操作:
#查看取值(切片操作)
>>>list1=[1,2,3]
>>>list1[0]
1 #修改值
>>> list1[0]='list0'
>>> print list1
['list0', 2, 3] #增加值
>>> list1.append("")
>>> print list1
['list0', 2, 3, ''] #删除值
>>>list1.remove("")
>>>print list1
['list0', 2, 3]
>>>del(list[2])
['list0', 2] #查找值
>>>1 in list1
False #zip遍历两个列表
>>> list2=[1,2]
>>> zip(list1,list2)
[('list0', 1), (2, 2)]
2.4 元组(tuple)
元组和列表相似,元组和字符串一样,是不可变得即不能修改元组,在内存中定义,将地址为赋值于变量,内存中不变,变的只是地址位的引用。
元组通过"()"圆括号中用逗号分隔的项目定义(可以存储不同类型的值)
>>>userinfo=("Tiven",24,"male") #一般元组
>>>userinfo=() #空元组
>>>userinfo=("Tiven",) # 单元素元组
元组通常用在使语句或用户定义的函数能够安全的采用一组值得时候,即被使用的元组的值不会变
元组和字符串的区别为字符串中每个字符一个索引,而元组为每一个元素(项目)一个索引,元组中某个元素的值无法修改。
可以定义n个变量分别获取到元组中各个元素的值叫做元组的拆分,当然列表也是可以拆分的
>>> tuple1=('tuple',2)
>>> a,b=tuple1
>>> print a
tuple
>>> print b
2
2.5 字典
Python中唯一的映射类型(哈希表)字典对象是可变的,但是键(相当于索引,可以为变量)必须为不可变对象,可以使用不同类型的键值,无序性字段通过"{key:value,key1:value}"花括号中用逗号分隔的项目(key:value)定义(可以存储不同类型的值)
#定义:
>>> dic1={0:0,1:1,2:2}
>>> print dic1
{0: 0, 1: 1, 2: 2} >>> dic2={'name':'Tiven','age':24}
>>> print dic2
{'age': 24, 'name': 'Tiven'} >>> name='username'
>>> age='userage'
>>> dic3={name:"Tiven",age:24} #(name,age为变量)
>>> print dic3
{'username': 'Tiven', 'userage': 24} #使用工厂dict()
>>> dic1=dict(one=1, two=2)
>>> print dic1
{'two': 2, 'one': 1} >>> dic2=dict({'one': 1, 'two': 2})
>>> print dic2
{'two': 2, 'one': 1} >>> dic3=dict(zip(('one', 'two'), (1, 2)))
>>> print dic3
{'two': 2, 'one': 1} >>> dic4=dict([['two', 2], ['one', 1]])
>>> print dic4
{'two': 2, 'one': 1} #使用内建函数(字典中的元素具有相同的值,默认为None)
>>> dic1={}.fromkeys(('x','y'),-1)
>>> print dic1
{'y': -1, 'x': -1}
字典操作:
>>> dic={'name':'Tiven','age':24,'sex':'fale'}
>>> print dic
{'age': 24, 'name': 'Tiven', 'sex': 'fale'}
>>> dic.keys() #获取所有的键
['age', 'name', 'sex']
>>> dic.values() #获取所有的值
[24, 'Tiven', 'fale']
>>> dic.items() #获取所有的键值对(元素)
[('age', 24), ('name', 'Tiven'), ('sex', 'fale')]
>>> dic.get('age','not in')
24
>>> dic.get('age1','not in') #获取一个键,不存在则返回定义值
'not in'
#查看取值:
#直接使用key访问,
>>>dic['name']
'Tiven' #for循环遍历
>>> for k in dic:
print k,dic[k] age 24
name Tiven
sex fale #增加:
>>> dic['tel']=''
>>> print dic
{'age': 24, 'tel': '', 'name': 'Tiven', 'sex': 'fale'} #更新: #可以直接使用key修改
>>> dic['age']=24.5
>>> print dic
{'age': 24.5, 'tel': '', 'name': 'Tiven', 'sex': 'fale'} #update()方法可以将一个字典的内容拷贝到另一个字典中
>>> dic2={'email':'hjjtw@163.com'}
>>> dic.update(dic2)
>>> print dic
{'email': 'hjjtw@163.com', 'age': 24.5, 'tel': '', 'name': 'Tiven', 'sex': 'fale'} #删除: >>> dic.pop('email') #删除某个键的元素
'hjjtw@163.com'
>>> print dic
{'age': 24.5, 'tel': '', 'name': 'Tiven', 'sex': 'fale'} >>> del(dic['tel']) #删除某个键的元素
>>> print dic
{'age': 24.5, 'name': 'Tiven', 'sex': 'fale'} >>> dic.clear() #删除字典所有元素(空字典)
>>> print dic
{} >>> del(dic) #>>> del(dic)
>>> print dic Traceback (most recent call last):
File "<pyshell#141>", line 1, in <module>
print dic
NameError: name 'dic' is not defined
>>> print dic Traceback (most recent call last):
File "<pyshell#141>", line 1, in <module>
print dic
NameError: name 'dic' is not defined 删除整个字典(没有字典) 另一种遍历: >>> for k,v in dic.items():
print k,v age 24
tel 17701301966
name Tiven
sex fale
2.6 布尔值
Python中除了''、""、0、()、[]、{}、None为False之外,其他的都是True
2.7 空值
空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,因为0
是有意义的,而None
是一个特殊的空值。
最后说明下:
以"#"开头的语句为注释,注释是给人看的,解释器会忽略不执行
当语句以冒号":"结尾时,缩进的语句视为代码块
Python程序是大小写敏感的,如果写错了大小写,程序会报错。
二、Python 数据类型的更多相关文章
- python学习笔记(二):python数据类型
上一篇博客写了python的入门和简单流程控制,这次写python的数据类型和各种数据类型的内置方法.一.数据类型是什么鬼?计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各 ...
- python基础(二)-------数据类型
python开发基础篇(二)数据类型 python数据类型有: 1.数字 1.只能存放一个值 2.一经定义,不可更改 3.直接访问 主要的分类为:整型,长整型,(python2有长整型的概念Pytho ...
- 二、Python数据类型(一)
一.Python的基本输入与输出语句 (一)输出语句 print() 示例: print('你好,Python') print(4+5) a = 10 print(a) 输出的内容可以是字符串,变量, ...
- 二: python基础数据类型(int,
一.什么是数据类型?2018-12-20 20:57:3õ # (3) num = 0 while num < 10: num += 1 if num == 7: num += 1 # 7执 ...
- python基础3 ---python数据类型二
ython基础 一.python数据类型 ------列表(list) 1.定义:[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素 特性:可存放多个不同类型的值:可修改指定索 ...
- Python 数据类型常用的内置方法(二)
目录 Python 数据类型常用的内置方法(二) 1.字符串类型常用内置方法 1.upper.lower.isupper.islower 2.startswith.endswith 3.format ...
- Python数据类型及其方法详解
Python数据类型及其方法详解 我们在学习编程语言的时候,都会遇到数据类型,这种看着很基础也不显眼的东西,却是很重要,本文介绍了python的数据类型,并就每种数据类型的方法作出了详细的描述,可供知 ...
- Python数据类型和数据操作
python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...
- Python数据类型(python3)
Python数据类型(python3) 基础数据类型 整型 <class 'int'> 带符号的,根据机器字长32位和64位表示的范围不相同,分别是: -2^31 - 2^31-1 和 - ...
- Python数据类型的内置函数之tuple(元组),dict(字典),set(集合)
Python数据类型内置函数 - str(字符串) - list(列表) - tuple(元组) - dict(字典) - set(收集) tuple(元组)的操作 - (count)统计元组中元素出 ...
随机推荐
- 双模蓝牙CC2564调试笔记
1.CC256X Testing Guide 官方文档WIKI地址:http://processors.wiki.ti.com/index.php/CC256x_Testing_Guide#Devi ...
- Docker常见问题解决
一.Docker中运行ubuntu容器,字体颜色太深导致无法看清 解决方案: 1. 利用dircolors命令,查看我们的系统当前的文件名称显示颜色的值,然后利用管道重定向到用户目录下的任意一个文件( ...
- python pyqt4 ide eric安装
注意事项 关于python,pyqt的版本 笔者安装的是eric,原来电脑安装的是64位的python,32位的pyqt4,导致系统找不到pyqt,后来更换python版本为32搞定,猜测pyqt的版 ...
- bate阶段项目总结
Beta里程碑总结 设想和目标 1. 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? 要解决的问题是如何实现消息的发布与查看以及个人主页的实现:定义的基本清楚,团队 ...
- js float 数据相加,有的正确,有的不对
转:http://bbs.csdn.net/topics/360259080 //浮点数加法运算function FloatAdd(arg1,arg2){ var r1,r2,m; try ...
- Java里面获取当前服务器的IP地址
public static void main(String[] args) { try { InetAddress address = InetAddress.getLocalHost();//获取 ...
- springmvc 解决跨域CORS
import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import ja ...
- 关于String的equals问题和StringBuilder问题
今天弄了一下String和StringBuilder,遇到了一些问题. 老规矩上代码图片: 发现stringBuilder的equals方法有问题,看了一下源码,发现stringbuilder没有重写 ...
- java 反编译
JavaDecompiler http://jd.benow.ca/jd-eclipse/update/
- gdb 常用内容
gdb exegdb exe coregdb -p info m TAB ^関数の先頭 info b ^list the breakpoint set args -a test ^引数設定 show ...