初识Python-数据类型
一、数值
1:整型(int)
整型数值可以存储2**32个数字,范围:-2147483648到2147483647,如:-100、0、100
示例:
>>> a = 100 >>> type(a) <type 'int'>
2:长整型(long)
长整型的范围很大,几乎可以说任意大的整数均可以存储;为了区分普通整型,需要在整数后加L或l。如: 2345L、0x34al
示例:
>>> a = 100**32 >>> a
10000000000000000000000000000000000000000000000000000000000000000L >>> type(a) <type 'long'> >>> a = 100l >>> a
100L >>> type(a) <type 'long'>
3:浮点型(float)
如:0.0、10.0、12.0、-18.8、3e+7
示例:
>>> a = 10.0/3 >>> a
3.3333333333333335 >>> type(a) <type 'float'>
4:复数型(complex)
Python对复数提供内嵌支持,这是其他大部分软件所没有的。如:- 3.14j,8.32e-36j
示例:
>>> num = 3.14j
>>> type(num)
<type 'complex'>
>>> num
3.1400000000000001j
>>> print num
3.14j
二、字符串(str)
1:字符串赋值方式
①单引号(')
abc字符串赋值到str变量。
示例:
>>> str = 'abc' >>> print str
abc >>> type(str) <type 'str'>
②双引号(")
abc字符串赋值到str变量。
示例:
>>> str = '123' >>> print str
123 >>> type(str) <type 'str'>
③三重引号(''')/("""),三重引号可以是三个单引号或者是三个双引号,除了定义字符串,还可以当做注释使用。
hello worde字符串赋值到str变量。
示例:
>>> str = '''hello ... worde ''' >>> str
'hello\nworde ' >>> print str
hello worde >>> str = ''' hello worde ''' >>> print str
hello worde
2:字符串索引
①从最左边第一个字符开始取值算,例如:abcde,即a(0)、b(1)、c(2)、d(3)、e(4)
②从最右边第一个字符开始取值算,例如:abcde,即e(-1)、d(-2)、c(-3)、b(-4)、a(-5)
示例:
>>> str = 'abcde' >>> str[0]
'a' >>> str[-1]
'e'
3:字符串切片
①[str1:str1][头下标:尾下标]
示例:
在不输入头下标和尾下标情况下,[:]默认是取全部值
>>> str = 'abcde' >>> str[:]
'abcde'
取头下标str0字符到尾下标str3字符。即:abc
>>> str[0:3]
'abc'
取头下标str1字符开始,a(0)不在取值内。即:bcde
>>> str[1:]
'bcde'
取到尾下标str4前的字符,e(4)不在取值内。即:abcd
>>> str[:4]
'abcd'
②[头下标:尾下标:间隔步数]
示例:
在不输入任何参数情况下,[::]默认是取全部值
>>> list = 'abcdefg'
>>> list[::]
'abcdefg'
取头下标str0字符开始,尾下标不填,间隔步数3,即:第一个字符a(0),走步数3,第二字符为d,走步数3,第三个字符为g,所以得最终值:adg。
>>> list[0::3]
'adg'
取头下标str1字符,尾下标str6字符区间,间隔步数2,即:第一个字符b(1),走步数2,第二个字符d,走步数2,第三个字符为f,所以得最终值:bdf。
>>> list[1:6:2]
'bdf'
三、元组()
1:序列
字符串、列表和元组都是序列;序列的两个主要特点是索引操作符和切片操作符,索引操作符让我们可以从序列中抓取一个特定项目,切片操作符让我们能够获取序列的一个切片,即一部分序列。
①len():获取序列的长度
获取a变量里序列长度,即得到的长度:6。
示例:
>>> a = 'abcdef' >>> len(a)
6
②+:连接两个序列
在原有a变量序列中,连接'123'序列,即得到值:abcdef123。
示例:
>>> a 'abcdef' >>> a + '123'
'abcdef123'
③*:重复序列元素
重复a变量里的序列4次,即得到值:abcdef*4。
示例:
>>> a 'abcdef' >>> a * 4
'abcdefabcdefabcdefabcdef'
④in:判断元素是否在序列中,返回布尔值True、False
判断a和g元素是否在a变量里序列中,a变量里的序列元素为:abcdef,即a元素在序列中,返回True;g元素没有在序列中,返回False。
示例:
>>> a 'abcdef' >>> 'a' in a
True >>> 'g' in a
False
⑤max():获取序列元素最大值,字母:a最小,z最大,数字:0最小,9最大。
获取a变量序列中的最大元素,a变量里的序列元素为:abcdef,即最大元素:f。
示例:
>>> a 'abcdef' >>> max(a)
'f'
⑥min():获取序列元素最小值
获取a变量序列中的最小元素,a变量里的序列元素为:abcdef,即最小元素:a。
示例:
>>> a 'abcdef' >>> min(a)
'a'
⑦cmp(x:y):比较两个序列是否相等,通常会以下三种情况
第一种序列长度相同元素不同返回值1
第二种序列长度不同返回值-1
第三种序列长度相同元素相同返回值0
第一种情况,a和b两个序列长度相同,w、g元素不同,即返回值:1。
示例:
>>> a
'abcdefw' >>> b
'abcdefg' >>> cmp(a,b) >>> 1
第二种情况,a和b两个序列长度不同,即返回值:-1。
示例:
>>> a
'abcdef' >>> b
'abcdefg' >>> cmp(a,b) >>> -1
第三种情况,a和b两个序列长度相同、元素相同,即返回值:0。
示例:
>>> a
'abcdef' >>> b
'abcdef' >>> cmp(a,b) >>> 0
2:元组
元组和列表十分相似,元组和字符串一样是不可变的,可以存储一系列的值,元组通常用在用户定义的函数能够安全地采用一组值的时候,即被使用的元组的值不会改变。
①创建元组
在不输入任何参数的情况下,元组为空
示例:
>>> t = () >>> t
()
创建t元组将a变量引入元组中。
示例:
>>> t = (a,) >>> t
('abcdef',)
创建多个元素,以逗号作为分隔
示例:
>>> t = (a,1,'test') >>> t ('abcdef', 1, 'test')
②元组操作
.count查找元组里包含多少个查询的元素值
查找t元组里是否有1数值和test字符串元素,t元组包含('abcdef', 1, 'test')元素,1、test都有一个元素,即最终返回索引值1。
示例:
>>> t
('abcdef', 1, 'test') >>> t.count(1)
1 >>> t.count('test')
1
.index查询元组里元素索引
查询t元组里的元素索引分别所在的值,元组里第一个'abcdef'字符串由a变量引入,即a元素索引值为0,1元素索引值为1,test元素索引值为2。
示例:
③元组拆分
>>> t
(abcdef', 1, 'test') >>> t.index(a)
0 >>> t.index(1)
1 >>> t.index('test')
2
将t元组里的a变量、数值1、字符串test三个元素分别拆分到one、two、three三个变量中。
示例:
>>> a = 'abcdef' >>> t = (a,1,'test') >>> one,two,three = t >>> one
'abcdef' >>> two
1 >>> three
'test'
四、列表 [ ]
列表(list)是处理一组有序项目的数据结构,即可以在列表中存储一个序列的项目,也是可变类型的数据。
1:列表操作
①创建列表
创建列表的几种写法。
示例:
>>> list1 = [ ] >>> list2 = list() >>> list3 = [ ]
创建list1列表,长度为4,内容分别包含字符串a、数值123、元组('b')、列表[123,'abc']。
示例:
>>> list1 = ['a',1234,('b'),[123,'abc']] >>> list1
['a', 1234, 'b', [123, 'abc']] >>> len(list1) 4 ##列表中4个元素 >>> type(list1) <type 'list'> ##类型为list(列表)
②取值切片
列表和字符串一样,可以通过索引截取列表中的元素,截取list1列表中索引3的值。
示例:
>>> list1 ['a',1234,('b'),[123,'abc']]
0 1 2 3 ##对应的索引 >>> list1[3]
[123, 'abc']
③更新列表
list.append()
list1列表添加新的值22222。
示例:
>>> list1.append(22222) >>> list1 ['a', 1234, 'b', [123, 'abc'], 22222]
说明:除了可以直接更新列表内容,通过表达式 + 将两个不同的列表进行组合。
##将list1和list2中的内容整合到list3。
示例:
>>> list1 ['a', 1234, 'c', [123, 'abc'], 22222] >>> list2 ['ggggg', '777777'] >>>list3 = list1 + list2 >>> list3 ['a', 1234, 'c', [123, 'abc'], 22222, 'ggggg', '777777']
④修改列表
list[] = x
修改list1表中的b元素为c。
示例:
>>> list1 ['a', 1234, 'b', [123, 'abc'],22222] >>> list1[2]= 'c' >>> list1 ['a', 1234, 'c', [123, 'abc'],22222]
⑤删除列表
del list
删除整个list1列表。
示例:
>>> del list1 >>> list1 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'list1' is not defined
list.remove(list[ ])
删除list2列表中的'ggggg'字符串。
示例:
>>> list2 = ['ggggg','777777'] >>> list2.remove(list2[0]) >>> list2 ['777777']
2:列表其它用法
①list.sort()
对列表中元素值进行升序排序。
示例:
>>> list3 ['a', 1234, 'c', [123, 'abc'], 22222, 'ggggg', '777777'] >>> list3.sort() >>> list3 [1234, 22222, [123, 'abc'], '777777', 'a', 'c', 'ggggg']
②list.reverse()
对列表中元素值进行反转。
示例:
>>> list3 [1234, 22222, [123, 'abc'], '777777', 'a', 'c', 'ggggg'] >>> list3.reverse() >>> list3 ['ggggg', 'c', 'a', '777777', [123, 'abc'], 22222, 1234]
③list.pop()
移除列表中的一个元素,并且返回该元素的值(默认最后一个元素)。
示例:
>>> list3 ['ggggg', 'c', 'a', '777777', [123, 'abc'], 22222, 1234] >>> list3.pop(2) 'a' >>> list3 ['ggggg', 'c', '777777', [123, 'abc'], 22222, 1234]
④list.count()
统计列表中c的字符串出现的次数。
示例:
>>> list3 ['ggggg', 'c', '777777', [123, 'abc'], 22222, 1234] >>> list3.count('c') 1
⑤list.insert()
在索引1前插入字符串’bbb‘。
示例:
>>> list3 ['ggggg', 'c', '777777', [123, 'abc'], 22222, 1234] >>> list3.insert(1,'bbb') >>> list3 ['ggggg', 'bbb', 'c', '777777', [123, 'abc'], 22222, 1234]
⑥list.extend()
在list3列表末尾追加abc字符串。
示例:
>>> list3.extend('abc') >>> list3 ['ggggg', 'bbb', 'c', '777777', [123, 'abc'], 22222, 1234, 'a', 'b', 'c']
五、字典 { }
字典是python中的唯一的映射类型(哈希表),字典对象是可变的,但是字典的键必须使用不可变对象,一个字典中可以使用不同类型的键值。
1:字典操作
①创建字典
创建字典的几种写法。
示例:
>>> dict1 = { a:1, b:2 }
>>> dict2 = dict(a=1,b=2)
创建dict1字典,字典中包含小明、小华、小丽、小花四人考试的排名,小明排名第一,小华和小丽并列第二、小花第三。
示例:
>>> dict1 = {'xiaoming':1,('xiaohua','xiaoli'):2,'xiaohua':3} >>> dict1 {'xiaoming': 1, 'xiaohua': 3, ('xiaohua', 'xiaoli'): 2} >>> len(dict1) 3 ##字典中3个元素 >>> type(dict1) <type 'dict'> ##类型为dict(字典)
②访问字典
通过键访问dict1字典中键=小明的排名,直接访问字典不加任何键,输出结果是无序的。
示例:
>>> dict1 {'xiaoming': 1, 'xiaohua': 3, ('xiaohua', 'xiaoli'): 2} >>> dict1['xiaoming'] 1
或者也可以通过dict.get方式去访问字典中的values。
示例:
>>> dict1.get('xiaohua') 3
③修改字典
通过键修改dict1字典中小明的排位为4。
示例:
>>> dict1 {'xiaoming': 1, 'xiaohua': 3, ('xiaohua', 'xiaoli'): 2} >>> dict1["xiaoming"] = 4 >>> dict1 {'xiaoming': 4, 'xiaohua': 3, ('xiaohua', 'xiaoli'): 2}
或者也可以通过dict.update方式更新内键到字典中。
通过.update方式往dict1字典中更新狗剩的排名5的信息。
示例:
>>> dict1.update({'gousheng':5}) >>> dict1 {'xiaoming': 4, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2}
④删除字典
删除dict1字典中单个键小华的排名信息。
示例:
>>> dict1 {'xiaoming': 4, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2} >>> del dict1['xiaohua'] >>> dict1 {'xiaoming': 4, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2}
删除整个dict1字典。
示例:
>>> dict1 {'xiaoming': 4, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2} >>> del dict1 >>> dcit1 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'dcit1' is not defined
通过.clear方式清空dict1字典中的键值排名。
示例:
>>> dict1 {'xiaoming': 1, 'xiaohua': 3, ('xiaohua', 'xiaoli'): 2} >>> dict1.clear() >>> dict1 {} ##空字典
2:字典其它用法
①dict.copy()
通过.copy方式复制dict1字典到dict2新的字典中。
示例:
>>> dict2 = dict1.copy() >>> dict2 {'xiaoming': 1, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2}
②dict.has_key()
通过.has_key方式判断dict2字典中,是否存在小华和阿豪的排名信息,如果存在返回布尔值True,不存在返回布尔值False。
示例:
>>> dict2 {'xiaoming': 1, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2} >>> dict2.has_key('xiaohua') True >>> dict2.has_key('ahao') False
或者也可以通过键去判断是否存在字典中。
示例:
>>> dict2 {'xiaoming': 1, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2} >>> 'xiaohua' in dict2 True >>> 'ahao' in dict2 False
③dict.items()
通过.items方式以列表形式去遍历dict2字典中的排名信息。
示例:
>>> dict2.items() [('xiaoming', 1), ('xiaohua', 3), ('gousheng', 5), (('xiaohua', 'xiaoli'), 2)]
④dict.pop()
通过.pop方式删除键=小明的排名信息,并输出信息values值。
示例:
>>> dict2 {'xiaoming': 1, 'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2} >>> dict2.pop('xiaoming') 1 >>> dict2 {'xiaohua': 3, 'gousheng': 5, ('xiaohua', 'xiaoli'): 2}
记录每一天有趣的事情!!