一、Python数据类型
python数据类型主要有三种:数值型、字符型和日期时间型。
数据类型 | 数据类型 | python表示 |
---|---|---|
数值型 | 整型 | int |
数值型 | 浮点型 | float |
数值型 | 复数 | complex |
字符型 | 字符型 | str |
日期型 | 日期型 | — |
1. 数值型
>>> number = 1
>>> type(number)
int
>>> fnumber = 1.243
>>> type(fnumber)
float
>>> mycomplex = 1+2j
>>> type(mycomplex)
complex
2. 字符串
>>> mystr = 'Python test!'
>>> type(mystr)
str
字符串的切片操作:
>>> mystr[0]
'P'
>>> mystr[-1]
'!'
>>> mystr[1:6]
'ython'
>>> mstr[:7]
'Python '
>>> mystr[6:]
' test!'
3.日期型和日期时间型
一般拿到日期型数据时基本都是字符串表示的,如 ‘2019-06-01’ 和 ‘2019/06/01 12:09:48’ 。需要将其转化为日期或者日期时间。需要用到datetime模块。
# 导入模块
>>> import datetime
>>> mydatestr = '2019-06-01'
>>> mytimestr = '2019/06/01 16:09:48'
#将字符串转化为日期时间
>>> mydate1 = datetime.datetime.strptime(mydatestr,'%Y-%m-%d')
>>> print(mydate1)
2019-06-01 00:00:00
#不保留日期后面的时间部分
>>> mydate2 = datetime.datetime.strptime(mydatestr,'%Y-%m-%d').date()
>>> print(mydate2)
2019-06-01
#
>>> mytime = datetime.datetime.strptime(mytimestr,'%Y/%m/%d %H:%M:%S')
>>> print(mytime)
2019-06-01 16:09:48
4.数据类型转换
类型转换 | Python表示 |
---|---|
字符串转整数 | int |
字符串转小数 | float |
整数转字符串 | str |
小数转字符串 | str |
PS:如果你需要将字符串型的小数转化为整数,必须先将字符串转化为浮点型,然后才可以转化为整数(如:int(float(“1.234”))),否则将会报错。
二、python数据结构
Python的数据结构主要有:列表、元组、字典。
1. 列表
列表是一个可变数据类型,列表元素用==[ ]==包裹,元素的值和个数可以改变。切片运算和字符串一致。
>>> mylist = [1,2,3,4,5]
>>> mylist[0]
1
>>> mylist[-1]
5
>>> mylist[:3]
[1,2,3]
>>> mylist[1:4]
[2,3,4]
>>> mylist[0:-1]
[1,2,3,4]
>>> mylist[::2]
[1, 3, 5]
对列表数据增、删、改的操作:
- 增
append方法每次只能在末尾填入一个元素;
extend方法每次在末尾插入多个元;
insert方法可在指定的位置插入一个元素;
>>> mylist.append(6) #在末尾插入一个元素
>>> print(mylist)
[1, 2, 3, 4, 5, 6]
>>> mylist.extend([7,8]) #在末尾插入多个元素
>>> print(mylist)
[1, 2, 3, 4, 5, 6, 7, 8]
>>> mylist.insert(-2,9) #在指定位置插入元素
>>> print(mylist)
[1, 2, 3, 4, 5, 6, 9, 7, 8]
- 删
pop方法在不指定参数时默认删除末尾元素,也可以指定删除某个位置的元素;
remove方法删除指定的元素值;
clear方法清空列表元素;
del函数删除列表对象;
>>> mylist.pop() #删除末尾一个元素
8
>>> print(mylist)
[1, 2, 3, 4, 5, 6, 9, 7]
>>> mylist.pop(-2) # 删除指定位置上的一个元素
9
>>> print(mylist)
[1, 2, 3, 4, 5, 6, 7]
>>> mylist.remove(2) #删除指定的元素值
>>> print(mylist)
[1, 3, 4, 5, 6, 7]
>>> copylist = mylist.copy() # 复制一个对象
>>> print(copylist)
[1, 3, 4, 5, 6, 7]
>>> copylist.clear()
>>> print(copylist)
[] #清空列表元素,列表对象仍然存在
>>> del copylist #删除整个列表,使该对象不存在
- 其他操作
copy方法复制一个物理对象,而非视图对象;
count方法计数;
index方法返回索引位置;
reverse方法实现元素颠倒;
sort方法排序;
>>> mylist2 = ['a','a','b','g','r','r','a','c','f']
>>> mylist3 = mylist2.copy()
>>> print(mylist3)
['a', 'a', 'b', 'g', 'r', 'r', 'a', 'c', 'f']
>>> mylist3.count('a') # 统计‘a’元素出现的次数
3
>>> mylist3.index('b') # 返回首次出现‘b’元素的索引位置
2
>>> mylist3.reverse() # 颠倒元素
>>> print(mylist3)
['f', 'c', 'a', 'r', 'r', 'g', 'b', 'a', 'a']
>>> mylist3.sort() #排序( 默认升序)
>>> print(mylist3)
['a', 'a', 'a', 'b', 'c', 'f', 'g', 'r', 'r']
>>> mylist3.sort(reverse = True) #降序排序
>>> print(mylist3)
['r', 'r', 'g', 'f', 'c', 'b', 'a', 'a', 'a']
2. 元组
元组是不可变得序列,只能进行查询。元组的元素用 ==( )==包裹,不可以更改,可以看成只读的列表,切片操作和字符串一致。
>>> mytuple = ('test',1,2,11,'try')
>>> mytuple[0]
'test'
>>> mytuple[-1]
'try'
>>> mytuple[1:3]
(1,2)
- 元组操作
>>> mytuple = ('test',1,2,11,'try',1,1,2)
>>> mytuple[-1::-1]
(2, 1, 1, 'try', 11, 2, 1, 'test')
>>> mytuple.count(1) #统计元组中1出现的次数
3
>>> mytuple.index('try') # 返回字符串‘try’的位置索引
4
# 元组的复制(没有copy的方法,只能用copy模块)
>>> import copy
>>> mytuple2 = copy.copy(mytuple)
>>> print(mytuple2)
('test', 1, 2, 11, 'try', 1, 1, 2)
3.字典
字典是Python中的映射数据类型,由键-值(key-value)对构成。几乎所有的Python对象都可以用作键,但一般以数字或者字符串最为常用。它是一个可变得对象,字典元素用=={ }==包裹。
>>> mydict = {'host':'earth'}
>>> mydict['port'] = 80
>>> mydict
{'host': 'earth', 'port': 80}
>>> mydict.keys()
dict_keys(['host', 'port'])
>>> mydict['host']
'earth'
>>> mydict.values()
dict_values(['earth', 80])
>>> for key in mydict:
print(key,mydict[key])
host earth
port 80
不同的字典的构建方法:
dict1 = {'id':[1,2,3,4],'name':['a','b','c','d'],'age':[20,21,22,23]}
dict2 = dict(id=list(range(1,5)),name=['a','b','c','d'],age=[20,21,22,23])
- 查询
>>> print(dict1['id']) #通过字典的键值获取对应的值(字典中没有id键会报错
[1, 2, 3, 4]
>>> print(dict1.get('name')) #等同于中括号的索引方式(字典中没有name键不会报错)
['a', 'b', 'c', 'd']
>>> print(dict1.setdefault('age')) #等同于get()方法
[20, 21, 22, 23]
>>> print(dict1.setdefault('gender'))
None
- 增
>>> dict2 = dict(id=list(range(1,5)),name=['a','b','c','d'],age=[20,21,22,23])
>>> dict2['income'] = [100,200,300,400] # 通过索引的方式增加键值对
>>> dict2.setdefault('gender',[0,1,1,0]) #通过setdefault方法增加键值对
>>> print(dict2)
{'age': [20, 21, 22, 23], 'gender': [0, 1, 1, 0], 'income': [100, 200, 300, 400], 'id': [1, 2, 3, 4], 'name': ['a', 'b', 'c', 'd']}
>>> dict2.update({'weight':[10,20,30,40]})
{'age': [20, 21, 22, 23], 'weight': [10, 20, 30, 40], 'gender': [0, 1, 1, 0], 'income': [100, 200, 300, 400], 'id': [1, 2, 3, 4], 'name': ['a', 'b', 'c', 'd']}
- 删
>>> dict2.pop('weight') #用pop方法对指定的键进行删除
[10, 20, 30, 40]
>>> print(dict2)
{'age': [20, 21, 22, 23], 'gender': [0, 1, 1, 0], 'income': [100, 200, 300, 400], 'id': [1, 2, 3, 4], 'name': ['a', 'b', 'c', 'd']}
>>> dict2.popitem() #popitem()每次删除第一个键值对
('age', [20, 21, 22, 23])
>>> print(dict2)
{'gender': [0, 1, 1, 0], 'income': [100, 200, 300, 400], 'id': [1, 2, 3, 4], 'name': ['a', 'b', 'c', 'd']}
- 改
>>> dict3 = {'name':'lsx','score':{'shuxue':92,'yuwen':89}}
>>> dict3['name'] = 'Tom'
>>> print(dict3)
{'name': 'Tom', 'score': {'shuxue': 92, 'yuwen': 89}}
>>> dict3.update({'score':{'shuxue':92,'yuwen':89,'yingyu':97}})
>>> print(dict3)
{'name': 'Tom', 'score': {'shuxue': 92, 'yuwen': 89, 'yingyu': 97}}
- 其他
>>> print(list(dict3.items())) #返回字典中的所有键值对
>>> print(list(dict3.keys())) #返回字典中的所有键
['name', 'score']
>>> print(dict3.keys())
dict_keys(['name', 'score'])
>>> print(list(dict3.values())) #返回字典中的所有值
'Tom', {'shuxue': 92, 'yuwen': 89, 'yingyu': 97}]
>>> dict4 = dict3.copy() #复制字典
{'name': 'Tom', 'score': {'shuxue': 92, 'yuwen': 89, 'yingyu': 97}}
注意:使用list函数套在items、keys、values等方法外面,产生列表结果,否则生成的不是列表结果,而是一个迭代器。
三、运算符
- 数值运算
运算符 | 含义 | 例子 | 运行结果 |
---|---|---|---|
+ | 加法 | 1+2 | 3 |
- | 减法 | 3-1 | 2 |
* | 乘法 | 2*3 | 6 |
/ | 除法 | 3/2 | 1.5 |
% | 求余数 | 7%2 | 1 |
// | 向下除法floor | -11//2 | -6 |
- 比较运算
符号 | 含义 |
---|---|
>、>= | 大于、大于等于 |
<、<= | 小于、小于等于 |
!= | 判断两个对象是否不相等 |
== | 判断两个对象是否相等 |
- 逻辑运算
or(或)
and(且)
not(非)
四、python常用内建函数
函数 | 描述 |
---|---|
dir( [ obj ] ) | 显示对象的属性 |
help( [ obj ] ) | 以一种整齐美观的形式显示对象的文档字符串 |
int( obj ) | 将一个对象转换为整数 |
str( obj ) | 将一个对象转化为字符串 |
type( obj ) | 返回对象的类型 |
open(fn,mode) | 以mode(‘r’ = 读,‘w’ = 写)方式打开一个文件名为fn的文件 |
range(start, stop[, step]) | 返回一个整数列表,起始值为start,结束值为stop-1,step为步长(默认为1)。 |
abs(obj) | 对obj取绝对值 |
divmod(obj1,obj2) | 返回 obj1/obj2 的整除结果和余数 |
round(obj,num) | 对obj进行四舍五入,保留num位小数 |
pow(x,y) | 幂指数运算,求x的y次方 |