python基础(数据类型、数据结构、运算符、常用内建函数)

一、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+23
-减法3-12
*乘法2*36
/除法3/21.5
%求余数7%21
//向下除法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次方
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值