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为这个键的值,并返回 defaultdefault的默认值为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”的一个浅复制
    
posted on 2017-04-11 14:23  光阴8023  阅读(161)  评论(0编辑  收藏  举报