python的数据类型
Python的数据类型包括以下几种:
1.整数型--int
- 比如1,2,3,这些我们数学上常用的整数,都是整数
- 还包括负整数,但是不包括小数
>>>a=8 >>>type(a) <class 'int'>
2.长整数--long
- 32位系统上是2**31-1,64位系统上是2**63 -1,超出位数,python会转用高精度去计算,可以是无限大的整
- 版本2.7.11以上,如果整数超出位数的话会自动转为长整数,以前是在整数后面加个小写或者大写的l
#py2.7.11 >>> b=999999999999999999999999999999999999999999 >>> type(b) <type 'long'>
#py3.5.1 >>>b=999999999999999999999999999999999999999999999999999 >>> type(b) <class 'int'>
可以看到2.7.11长整数还是单独分类的,但是到了3.5.1,就没有整数和长整数之分了
3.浮点数--float
- 就是带小数的数,比如
>>> a=1.35 >>> type(a) <class 'float'>
4.复数--complex
- 没用过,查了资料,complex=-4+5j,包括实数和虚数,-4是实数,5j是虚数,虚数是什么?就是不真实的不存在的数吧,比如N的平方是负数的话,那么N的平方根就是虚数了
5.字符串--str
>>> Str="westber" >>> type(Str) <class 'str'> >>> str="123" >>> type(str) <class 'str'> >>> str=" " >>> type(str) <class 'str'>
- 上面d代码可以看出一般字符串在引号之间(引号可以是单引号'',双引号"",三引号''' ''',)输入字母,数字,甚至是空格都可以
6.列表--list
假如一个列表 nums=[1, 3, 5, 7, 8,13,20];
访问列表中的值,就是列表加索引下标,要访问它的第几个元素,就用它的索引下标
'''nums[0]: 1'''
print "nums[0]:", nums[0]
'''nums[2:5]: [5, 7, 8] 从下标为2的元素切割到下标为5的元素,但不包含下标为5的元素'''
print "nums[2:5]:", nums[2:5]
'''nums[1:]: [3, 5, 7, 8, 13, 20] 从下标为1切割到最后一个元素'''
print "nums[1:]:", nums[1:]
'''nums[:-3]: [1, 3, 5, 7] 从最开始的元素一直切割到倒数第3个元素,但不包含倒数第三个元素'''
print "nums[:-3]:", nums[:-3]
'''nums[:]: [1, 3, 5, 7, 8, 13, 20] 返回所有元素'''
print "nums[:]:", nums[:]
更新列表,就是对列表中的元素进行重新赋值
nums[0]="ljq";
print nums[0];
删除列表中的元素,就是del 列表名称加索引下标,如下:
del nums[0];
'''nums[:]: [3, 5, 7, 8, 13, 20]'''
print "nums[:]:", nums[:];
列表脚本操作符 列表对+和*的操作符与字符串相似。+号就是把多个列表合并为一个列表,*号是乘法运算符,列表*N表示列表里的每个元素重复N遍,如下:
print len([1, 2, 3]); #3
print [1, 2, 3] + [4, 5, 6]; #[1, 2, 3, 4, 5, 6]
print ['Hi!'] * 4; #['Hi!', 'Hi!', 'Hi!', 'Hi!']
print 3 in [1, 2, 3] #True
for x in [1, 2, 3]: print x, #1 2 3
列表截取
L=['spam', 'Spam', 'SPAM!'];
print L[2]; #'SPAM!'
print L[-2]; #'Spam'
print L[1:]; #['Spam', 'SPAM!']
列表一些数&方法,可以用help(list)查到
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置,索引从0开始
list.insert(index, obj) 将对象插入列表
list.pop(obj=list[-1]) 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素,倒转
list.sort([func]) 对原列表进行排序
7.元组--tuple
>>> tuple_test=(2,4) >>> type(tuple_test) <class 'tuple'> >>> tuple_test[0] 2 >>> tuple_test[0]=3 Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> tuple_test[0]=3 TypeError: 'tuple' object does not support item assignment #上面那句英文的意思就是元组对象不支持元素赋值操作,因为元组元素不能修改 >>> t_test=(1,[2,3,4]) >>> type(t_test) <class 'tuple'> >>> t_test[1][0]=5 #这里对元组的第二个元素的第一个元素进行赋值操作 >>> t_test (1, [5, 3, 4]) >>> 没有报错,说明赋值成功,说明元组的元素如果本身是可变的,那么这个元组的元素就可以修改 >>> tup=(50) >>> type(tup) <class 'int'> >>> tup=(50,) >>> type(tup) <class 'tuple'> #从上面这段代码可以看出,当元组只有一个元素时,这个元素后面要加逗号,不然它的类型默认是括号里面的50这个整数型的类型就是int
8.字典--dictionary
dict_test={"a":1,"b":2,"c":3} ,字典的格式就是字典名称={key:value,key:value}这样的键值对格式,下面是字典的键和值得遍历
>>> for key in dict_test: print (key) a c b >>> for value in dict_test: print (value) a c b #以上可以看出,当使用for + str +in 字典名称时,遍历出来的都是字典的键 >>> for value in dict_test.values: print (value) Traceback (most recent call last): File "<pyshell#15>", line 1, in <module> for value in dict_test.values: TypeError: 'builtin_function_or_method' object is not iterable #错误示范,要遍历字典的值的话就必须 for +value(这个值名称自己定义)+字典名称.values(),就会遍历出来,下面是正确示范 >>> for value in dict_test.values(): print (value) 1 3 2
-
列表是有序的对象集,字典是无序的对象集,dict = {'alex': '123', 'Ben': '234', 'Eric': '456'}
-
字典的键值没有类型限制,无乱是整型还是字符串都可以作为键值,但是键是不可变的(就是不能重新进行赋值),值是可变的
dict1 = { 'abc': 123 },dict2 = { 'abc': 123, 28: 66 }
- 访问字典的值得操作,如下:
>>> dict = {'name': 'luffy', 'age': 28, 'class': '1'}; >>> print "dict['name']: ", dict['name'] dict['name']: luffy >>> print "dict['age']: ", dict['age'] dict['age']: 28
- 修改字典的元素,如下操作:
>>> dict = {'name': 'luffy', 'age': 28, 'class': '1'}; >>> dict["age"]=27; #修改已有键的值 >>> dict["colleage"]="shenda"; #增加新的键/值对 >>> print "dict['age']: ", dict['age'] dict['age']: 27 >>> print "dict['colleage']: ", dict['colleage'] dict['colleage']: shenda
删除、清空操作
del dict['name']; # 删除键是'name'的元素
dict.clear(); # 清空词典所有元素
del dict ; # 删除整个字典,字典不存在
>>> del dict['name']; >>> dict {'age': 27, 'colleage': 'shenda', 'class': '1'} >>> dict.clear() >>> dict {} >>> dic={"a":123,"b":456} >>> del dic >>> dic Traceback (most recent call last): File "<pyshell#37>", line 1, in <module> dic NameError: name 'dic' is not defined #这里再打印字典,会报字典不存在就是没有被定义的错误