计算机是用来辅助人类工作的,能处理的远不止数值,还可以处理文本、图形、音频、视频、网页等各种各样的数据,不同的数据,需要定义不同的数据类型,在程序设计中映射了现实世界的分类,以便于抽象的分析
序列:不是单一的数据类型,指列表,字符串,元组三个类型,可以通过索引操作符和切片操作符将序列部分项目取出。(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("12345") '5'
min(): 取得序列中最小值
>>>mix("12345") '1'
cmp(): 比较2个序列是否相同
>>>cmp("12345","1") 1 >>>cmp("12","12345") -1 >>>cmp("123","123") 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=["1","2","3"] #一般列表 >>>list1=[] #空列表
列表操作:
#查看取值(切片操作) >>>list1=[1,2,3] >>>list1[0] 1 #修改值 >>> list1[0]='list0' >>> print list1 ['list0', 2, 3] #增加值 >>> list1.append("4") >>> print list1 ['list0', 2, 3, '4'] #删除值 >>>list1.remove("4") >>>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']='17701301966'
>>> print dic
{'age': 24, 'tel': '17701301966', 'name': 'Tiven', 'sex': 'fale'}
#更新:
#可以直接使用key修改
>>> dic['age']=24.5
>>> print dic
{'age': 24.5, 'tel': '17701301966', 'name': 'Tiven', 'sex': 'fale'}
#update()方法可以将一个字典的内容拷贝到另一个字典中
>>> dic2={'email':'hjjtw@163.com'}
>>> dic.update(dic2)
>>> print dic
{'email': 'hjjtw@163.com', 'age': 24.5, 'tel': '17701301966', 'name': 'Tiven', 'sex': 'fale'}
#删除:
>>> dic.pop('email') #删除某个键的元素
'hjjtw@163.com'
>>> print dic
{'age': 24.5, 'tel': '17701301966', '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程序是大小写敏感的,如果写错了大小写,程序会报错。
posted on
浙公网安备 33010602011771号