python数据类型
python数据类型
1. 数字
Int 整形
Float 浮点 占8个字节(64位),52位表示底,11位表示指数,剩下一位表示符号。
Long 长整形不过是大一些的整数。
2. 布尔
真或假,0或1。 >>> 0 == False True >>> 1 == True True >>> 1 == False False
3. 字符串
%s 每一个字符串都会占有一个空间,不建议通过拼接的方式实现。
name = input("name:")
age = input("age:")
job = input("job:")
#print("information of %s:\nNAME=%s\nAGE=%s\nJOB=%s" %(name,name,age,job))
print("information of name:" + name + "\nNAME:[]" +name +"\nAGE:[]" +age +"\nJOB:[]" +job )
C:\Python36\python.exe C:/Users/7KM/PycharmProjects/s18/day1/test.py
name:wangx
age:27
job:IT
information of name:wangx
NAME:[]wangx
AGE:[]27
JOB:[]IT
3.1. 格式化输出%s%d
字符串是%s,整数%d,浮点数是%f
name = input("name:")
age = input("age:")
job = input("job:")
#print("information of %s:\nNAME=%s\nAGE=%s\nJOB=%s" %(name,name,age,job))
#print("information of name:" + name + "\nNAME:[]" +name +"\nAGE:[]" +age +"\nJOB:[]" +job )
msg = '''
information of %s:
NAME=%s
AGE=%s
JOB=%s
'''%(name,name,age,job)
print(msg)
name = input("name:")
age = int(input("age:"))
job = input("job:")
msg = '''
information of %s:
NAME=%s
AGE=%d
JOB=%s
'''%(name,name,age,job)
print(msg)
C:\Python36\python.exe C:/Users/7KM/PycharmProjects/s18/day1/test.py
name:wang
age:27
job:IT
information of wang:
NAME=wang
AGE=27
JOB=IT
3.2. 字符串功能
移除空白或替换strip
name = input("name:").strip()
age = int(input("age:"))
job = input("job:").strip()
msg = '''
information of %s:
NAME=%s
AGE=%d
JOB=%s
'''%(name,name,age,job)
print(msg)
C:\Python36\python.exe C:/Users/7KM/PycharmProjects/s18/day1/test.py
name: wang
age:27
job: IT
information of wang:
NAME=wang
AGE=27
JOB=IT
分割
长度
索引
切片 顾首不顾尾
>>> a
[1, 8, 2, 3, 'a', 'b']
>>> a[0:2]
[1, 8]
>>>
>>> a
[1, 8, 2, 3, 'a', 'b']
>>> a[2:6:1]
[2, 3, 'a', 'b']
>>>
>>> a
[1, 8, 2, 3, 'a', 'b']
>>> a[-2:]
['a', 'b']
>>>
4. 列表
>>> name_list = ['wangxu','zhangsan','xiaowu'] >>> name_list ['wangxu', 'zhangsan', 'xiaowu'] >>> type(name_list) <class 'list'> >>> name_list[1] 'zhangsan' >>> name_list[0] 'wangxu' >>> name_list[2] 'xiaowu' >>> name_list ['wangxu', 'zhangsan', 'xiaowu'] >>> >>> dir(name_list) ['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'clear', 'copy', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort'] >>>
4.1. append 追加
>>> name_list.append("wwww")
>>> name_list
['wangxu', 'zhangsan', 'xiaowu', 'wwww']
>>> name_list.append("wangxu2")
>>> name_list
['wangxu', 'zhangsan', 'xiaowu', 'wwww', 'wangxu2']
4.2. Index 位置索引
>>> name_list
['wangxu', 'zhangsan', 'xiaowu', 'wwww', 'wangxu2']
>>> name_list.index("xiaowu")
2
>>> name_list
['wangxu', 'zhangsan', 'xiaowu', 'wwww', 'wangxu2']
>>> name_list.index("wangxu")
0
>>> name_list.index("wangxu2")
4
>>>
4.3. Count 计数
>>> name_list
['wangxu', 'zhangsan', 'xiaowu', 'wwww', 'wangxu2', 'xiaowu']
>>> name_list.count("xiaowu")
2
>>>
4.4. Insert 插入
>>> name_list ['wangxu', 'zhangsan', 'xiaowu', 'wwww', 'wangxu2', 'xiaowu'] >>> name_list.insert(2,"lisi") >>> name_list ['wangxu', 'zhangsan', 'lisi', 'xiaowu', 'wwww', 'wangxu2', 'xiaowu'] >>>
4.5. Pop 删除最后一个
>>> name_list ['wangxu', 'zhangsan', 'lisi', 'xiaowu', 'wwww', 'wangxu2', 'xiaowu'] >>> name_list.pop() 'xiaowu'
4.6. remove 指定删除
>>> name_list
['wangxu', 'zhangsan', 'lisi', 'xiaowu', 'wwww', 'wangxu2']
>>> name_list.remove("wwww")
>>> name_list
['wangxu', 'zhangsan', 'lisi', 'xiaowu', 'wangxu2']
>>>
>>> name_list = ["www","!","*","22eee","eee333","eeee","www","www"]
>>> name_list.count("www")
3
>>> for i in range(name_list.count("www")):
... name_list.remove("www")
...
>>> name_list
['!', '*', '22eee', 'eee333', 'eeee']
4.7. reverse 反转
>>> name_list ['wangxu', 'zhangsan', 'lisi', 'xiaowu', 'wangxu2'] >>> name_list.reverse() >>> name_list ['wangxu2', 'xiaowu', 'lisi', 'zhangsan', 'wangxu'] >>>
4.8. sort排序
>>> name_list ['wangxu2', 'xiaowu', 'lisi', 'zhangsan', 'wangxu'] >>> name_list.sort() >>> name_list ['lisi', 'wangxu', 'wangxu2', 'xiaowu', 'zhangsan'] >>> >>> name_list ['www', '!', '*', '22eee', 'eee333'] >>> name_list.sort() >>> name_list ['!', '*', '22eee', 'eee333', 'www'] >>>
4.9. extend 扩展
>>> a [1, 8, 2, 3, 'a', 'b'] >>> b [1, 3, 5, 7] >>> a + b [1, 8, 2, 3, 'a', 'b', 1, 3, 5, 7] >>> a.extend(b) >>> a [1, 8, 2, 3, 'a', 'b', 1, 3, 5, 7] >>>
拆分字符串
>>> a [1, 8, 2, 3, 'a', 'b', 1, 3, 5, 7] >>> name = "wangxu" >>> a.extend(name) >>> a [1, 8, 2, 3, 'a', 'b', 1, 3, 5, 7, 'w', 'a', 'n', 'g', 'x', 'u'] >>>
4.10. 判断包含
>>> a [1, 8, 2, 3, 'a', 'b', 1, 3, 5, 7, 'w', 'a', 'n', 'g', 'x', 'u'] >>> 4 in a False >>> 2 in a True
5. 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改。
元组使用小括号,列表使用方括号。
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
>>> a = (1,2,3,4,3,3,4,4)
>>> type(a)
<class 'tuple'>
>>> dir(a)
['__add__', '__class__', '__contains__', '__delattr__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__rmul__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'count', 'index']
>>> a.count(3)
3
>>> a.count(4)
3
>>> a.count(1)
>>> names = ("alex","jack","eric")
>>> names
('alex', 'jack', 'eric')
>>> names.index('alex')
0
>>> names.count('jack')
1
>>>
5.1. 元组和列表转换
>>> a (1, 2, 3, 4, 3, 3, 4, 4) >>> type(a) <class 'tuple'> >>> list(a) [1, 2, 3, 4, 3, 3, 4, 4] >>> b=list(a) >>> type(b) <class 'list'> >>>
6. 字典
字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中
字典的特性:
dict是无序的
key必须是唯一的,so 天生去重。键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。
dict = {'Alice': '2341', 'Beth': '9102', 'Cecil': '3258'}
dict1 = { 'abc': 456 };
dict2 = { 'abc': 123, 98.6: 37 };
>>> dic = {'k1':'v1','k2':'v2'}
>>> dic2 = dic
dic dict(
>>> dic2 = dict(k1='v1',k2='v2')
>>> dic
{'k2': 'v2', 'k1': 'v1'}
>>> dic2
{'k2': 'v2', 'k1': 'v1'}
>>> type(dic)
<class 'dict'>
>>> type(dic2)
<class 'dict'>
>>>
6.1. 增加
info = {
'stu1101': "TengLan Wu",
'stu1102': "LongZe Luola",
'stu1103': "XiaoZe Maliya",
}
>>> info
info
>>> info['stu004']="youyou"
>>> info
{'stu004': 'youyou', 'stu1103': 'XiaoZe Maliya', 'stu1101': 'TengLan Wu', 'stu1102': 'LongZe Luola'}
6.2.修改
>>> info['stu1103']="sasa"
>>> info
{'stu004': 'youyou2', 'stu1103': 'sasa', 'stu1101': 'TengLan Wu', 'stu1102': 'LongZe Luola'}
>>> info.pop('stu1101')
6.3. 删除
del dict['Name']; # 删除键是'Name'的条目
dict.clear(); # 清空词典所有条目
del dict ; # 删除词典。但这会引发一个异常,因为用del后字典不再存在
>>> info.pop('stu1101')
'TengLan Wu'
>>> info
{'stu004': 'youyou2', 'stu1103': 'sasa', 'stu1102': 'LongZe Luola'}
>>>
>>> del info['stu1102']
>>> info
{'stu004': 'youyou2', 'stu1103': 'sasa'}
>>>
>>> info.popitem()
('stu004', 'youyou2') ##随机删除
>>> info
{'stu1103': 'sasa'}
>>>
6.4. 查找
>>> info
{'stu004': 'youyou', 'stu1103': 'XiaoZe Maliya', 'stu1101': 'TengLan Wu', 'stu1102': 'LongZe Luola'}
>>> 'stu004' in info
True
>>> 'stu00' in info #标准用法
False
>>> 'youyou' in info #必须用key
False
>>> info.get('youyou')
>>> info.get('stu004') #get获取
'youyou'
>>> info['stu004']
'youyou'
>>> info['stu005'] #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'stu005'
>>> info.get('stu005')
6.5. 多级嵌套及操作
info = {
'wangxu':{
'2012':'毕业',
'2013':'amap',
'2014':'alibaba',
} ,
'xiaowu':{
'2015' : 'beijing'
}
}
>>> info
{'xiaowu': {'2015': 'beijing'}, 'wangxu': {'2012': '毕业', '2014': 'alibaba', '2013': 'amap'}}
>>> info['wangxu']
{'2012': '毕业', '2014': 'alibaba', '2013': 'amap'}
>>> info['wangxu']['2014']
'alibaba'
>>>
6.6. Setdefault
如果键在字典中,返回这个键所对应的值。如果键不在字典中,向字典 中插入这个键,并且以default为这个键的值,并返回 default。default的默认值为None
>>> wangxu = {
... '2012':'毕业',
... '2013':'amap',
... '2014':'alibaba',
... }
>>>
>>> wangxu
{'2012': '毕业', '2014': 'alibaba', '2013': 'amap'}
>>> wangxu.setdefault('2012')
'毕业'
>>> wangxu.setdefault('2016','xian')
'xian'
>>> wangxu
{'2012': '毕业', '2014': 'alibaba', '2013': 'amap', '2016': 'xian'}
>>> wangxu.setdefault('2017')
>>> wangxu
{'2012': '毕业', '2014': 'alibaba', '2013': 'amap', '2017': None, '2016': 'xian'}
6.7. Update
update() 函数把字典dict2的键/值对更新到dict里
>>> wangxu
{'2012': '毕业', '2014': 'alibaba', '2013': 'amap', '2017': None, '2016': 'xian'}
>>> b = {1:2,3:4}
>>> wangxu.update(b)
>>> wangxu
{3: 4, '2012': '毕业', '2014': 'alibaba', '2013': 'amap', '2017': None, 1: 2, '2016': 'xian'}
>>>
6.8. Items遍历
tems() 函数以列表返回可遍历的(键, 值) 元组数组
>>> wangxu
{3: 4, '2012': '毕业', '2014': 'alibaba', '2013': 'amap', '2017': None, 1: 2, '2016': 'xian'}
>>> wangxu.items()
dict_items([(3, 4), ('2012', '毕业'), ('2014', 'alibaba'), ('2013', 'amap'), ('2017', None), (1, 2), ('2016', 'xian')])
>>>
6.9. 循环
>>> for key,value in wangxu.items(): #会先把dict转成list,数据里大时莫用 ... print(key,value) ... 3 4 2012 毕业 2014 alibaba 2013 amap 2017 None 1 2 2016 xian >>> for k in wangxu: ... print(k,wangxu[k]) ... 3 4 2012 毕业 2014 alibaba 2013 amap 2017 None 1 2 2016 xian >>>
7. set集合
http://www.cnblogs.com/alex3714/articles/5717620.html
集合是一个无序的,不重复的数据组合,它的主要作用如下:
- 去重,把一个列表变成集合,就自动去重了
- 关系测试,测试两组数据之前的交集、差集、并集等关系
-
s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时出现在二者中) 基本操作: t.add('x') # 添加一项 s.update([10,37,42]) # 在s中添加多项 使用remove()可以删除一项: t.remove('H') len(s) set 的长度 x in s 测试 x 是否是 s 的成员 x not in s 测试 x 是否不是 s 的成员 s.issubset(t) s <= t 测试是否 s 中的每一个元素都在 t 中 s.issuperset(t) s >= t 测试是否 t 中的每一个元素都在 s 中 s.union(t) s | t 返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t) s & t 返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t) s - t 返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t) s ^ t 返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy() 返回 set “s”的一个浅复制
浙公网安备 33010602011771号