1 Python pass语句
Python pass 是空语句,是为了保持程序结构的完整性。
pass 不做任何事情,一般用做占位语句。
测试案例
# Author :liqiang
for item in "gavin":
if item=='a':
pass
print("这是pass块")
print("当前代码是: %s" %item)
2 Python Number
python 支持四种不同的数值类型
分别是: int long float complex(复数,不常用)
python number类型转换
API如下:
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
math模块
Python math 模块提供了许多对浮点数的数学运算函数。
使用math模块需要导入该模块
import math
dir(math)
cmath模块
Python cmath 模块包含了一些用于复数运算的函数。
使用cmath模块需要导入该模块:
import cmath
dir(cmath)
math和cmath模块的区别:
cmath 模块运算的是复数,math 模块运算的是数学运算
Python数学常用函数
函数 | 返回值描述 |
---|---|
abs(x) | 绝对值 |
ceil(x) | 向上取整 |
exp(x) | 返回e的x幂 |
floor(x) | 向下取整 |
max(x1,x2...) | 返回最大值 |
min(x1,x2...) | 返回最小值 |
pow(x,y) | 返回x的y次方 |
sqrt(x) | 返回x的平方根 |
round(x,[n]) | 返回浮点数x的四舍五入值,n为小数点后的位数 |
Python随机数函数
函数 | 返回值描述 |
---|---|
random() | 随机生成一个[0,1)的实数 |
uniform(x,y) | 随机生成一个[x,y]的实数 |
3 Python字符串
在python种,字符串的拼接可以通过"+"来进行拼接,但是使用字符串拼接符的话,效率会低下.少次数拼接可以使用.
其中关于字符串的方法可以直接使用变量.方法
的形式去调用
总结如下:
#定义一个字符串进行测试
str ="gavin"
str.xxx方法调用即可
具体方法
方法名称 | 描述信息 | 备注 |
---|---|---|
capitalize() | 首字母大写 | |
center(50,'-') | 打印50个字符,长度不够两端用'-'补齐 | |
ljust(50,'-') | 打印50个字符,长度不够左边用'-'补齐 | |
rjust(50,'-') | 打印50个字符,长度不够右边用'-'补齐 | |
endwith('a') | 判断字符以什么结尾,返回布尔值 | |
expand() | tab键转成多少个字符 | |
find('a') | 返回字符所在的索引 | |
rfind('c') | 找到最右边的指定字符的索引 | |
format(name=xx) | 格式化字符串种name的数据 | name='gavin{name}' |
format_map({'name':'123') | 利用字典的形式格式化数据 | 传入的值会默认带到name变量中去 |
isalnum() | 判断是否为阿拉伯数字和字符 | |
isalpha() | 判断是否为纯英文字符 | |
isdigit() | 判断是否为整数 | 最常用 |
isidentifier() | 是否是一个合法的标识符变量 | 返回布尔值 |
islower() | 是否为小写 | 返回布尔值 |
isupper() | 是否为大写 | 返回布尔值 |
isnumeric() | 判断是否为整数 | 返回布尔值 |
lower() | 转成小写 | |
upper() | 转成大写 | |
strip() | 去掉两端换行符 | |
lstrip() | 去掉左边换行符 | |
rstrip() | 去掉右边换行符 | |
replace('a','A) | 字符串替换 | 常用 |
split(',') | 字符串按照指定字符分隔成列表 | |
splitlines() | 按换行符分隔 | |
swapcase() | 大小写相互转化 | |
title() | 驼峰 | 每个单词首字母大写 |
zfill() | 用0补齐 |
特殊方法
#join的用法
print(','.join(['a','b','c'])
#结果: a,b,c #将列表转成字符,以逗号分隔
#随机密码-加密解密
str = "gavin"
key =str.maketrans('abcde','uuesd')#将abcde映射为uuesd
print(str.translate(key))
#结果:guvin
4 Python列表
列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现。
列表的数据项不需要具有相同的类型。
创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。
例如:
list1 = [1,2,3,'gavin',True,2.3]print(list1)>>>[1, 2, 3, 'gavin', True, 2.3]
列表中数据访问
# 1 通过下标获取数据 :的使用list1 = [1,2,3,'gavin',True,2.3]print(list1[0:2])#取索引为0-2的元素,但不包括索引为2的元素print(list1[-2:])#从倒数第二个取出后面所有print(list1[:2])#从索引为0开始取元素,但不包括索引为2的元素print(list1[-1])# 表示取最后一个元素
列表元素新增
list2 = ['000']list2.insert(0,'ppx')#将ppx插入到索引为0的位置,list2.append('lqy')#追加list2.append('lq')#追加print(list2)
列表元素修改
元素的新增也属于列表的修改
当然也可以对现有的元素进行修改
list2=['ppx', '000', 'lqy', 'lq']list2[1]='123'print(list2)
列表元素删除
列表中元素的删除有三种方法
方法1:直接删除指定元素
list2=['ppx', '123', 'lqy', 'lq']list2.remove('123')>>>['ppx', 'lqy', 'lq']
方法2:按下标删除
list2 = ['ppx', 'lqy', 'lq']del list2[0]>>>['lqy', 'lq']
方法3:不指定参数弹出最后一个(也可以指定下标弹出元素)
list2=['lqy', 'lq']list2.pop() #等价于list2.pop(1) >>>['lqy']
列表元素查找
可以通过index方法查找指定元素的索引,然后通过中括号的方式寻找元素
list2=['ppx', '123', 'lqy', 'lq']index =list2.index('lqy')print(index)temp =list2[index]print(temp)>>>lqy
列表元素清空
直接调用clear()方法可以清空列表数据
list2=['ppx', '123', 'lqy', 'lq']list2.clear()print(list2)>>>[]
列表元素排序
对列表进行排序,反转
list2=['ppx', '123', 'lqy', 'lq']list2.sort()print(list2)>>>['123', 'lq', 'lqy', 'ppx']#默认是升序排序
列表反转:将列表中的数据反转过来
list2=['ppx', '123', 'lqy', 'lq']list2.reverse()print(list2)>>>['lq', 'lqy', '123', 'ppx']
列表合并
可以对两个列表进行合并
list2=['ppx', '123', 'lqy', 'lq']temp= [1,2,3,4]list2.extend(temp)print(list2)>>>['ppx', '123', 'lqy', 'lq', 1, 2, 3, 4]
列表元素循环
对列表中的元素进行遍历
for item in list2:#只遍历元素 print(item)for index,item in enumerate(list2):# 可以同时遍历元素和索引 print(index,item)
列表切片
可以对列表中的元素进行切片,并且可以指定步长
list2=['ppx', '123', 'lqy', 'lq']temp=list2[0:-1:2]# 2代表步长print(temp)>>>['ppx', 'lqy']
列表拷贝
列表的拷贝分为浅拷贝和深拷贝
浅拷贝只是拷贝内存地址
深度拷贝的话则完全独立拷贝一份数据
例如:
import copya = [1, 2, 3, 4, ['a', 'b']] # 原始对象b = a # 赋值,传对象的引用c = copy.copy(a) # 对象拷贝,浅拷贝d = copy.deepcopy(a) # 对象拷贝,深拷贝a.append(5) # 修改对象aa[4].append('c') # 修改对象a中的['a', 'b']数组对象a[0]=9print('a = ', a)print('b = ', b)print('c = ', c)print('d = ', d)
运行结果:
a = [9, 2, 3, 4, ['a', 'b', 'c'], 5]b = [9, 2, 3, 4, ['a', 'b', 'c'], 5]c = [1, 2, 3, 4, ['a', 'b', 'c']]d = [1, 2, 3, 4, ['a', 'b']]
注:也就是说深度复制的话,是完全重新再创建一个新的对象,而浅拷贝的话只是复制了当前对象的地址,改变外层不会影响复制的列表,但是改变内层的数据,则复制的列表也会随之改变.
列表脚本操作符
表达式 | 结果 | 描述 |
---|---|---|
len([1,2,3,4]) | 4 | 返回长度 |
[1, 2, 3] + [4, 5, 6] | [1, 2, 3, 4, 5, 6] | 列表组合,类似字符串拼接 |
['Hi!'] * 4 | ['Hi!', 'Hi!', 'Hi!', 'Hi!'] | 列表元素重复 |
3 in [1, 2, 3] | True | 判断元素是否在当前列表 |
列表常用函数
函数名 | 描述 |
---|---|
len(list) | 列表的长度 |
max(list) | 返回列表的最大值 |
min(list) | 返回列表的最小值 |
list(seq) | 将元组转化为列表 |
5 Python元组
在python中,元组和列表基本类似
不同之处:
1.元组中的数据不可以别修改,
2.元组使用的是小括号,列表使用花括号
元组创建
元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。
tuple=(1,2,3,4,5)
元组元素访问
元组中元素的访问和列表一样,并且可以截取元组
print(tuple[1:4])# 打印元组第二到第四个元素(一个元组)print(tuple[-1])#打印最后一个元素print(tuple[-2:])#从倒数第二个开始打印元组print(tuple[2:])# 从索引为2的位置打印元组
元组修改
由于元组不可以修改,所以一旦创建后就不能改变.但是元组可以进行拼接,并且元组中的数据可以重复.
tuple=(1,2,3,4,5)tuple2 = (7,8,9,2)tuple3 = tuple+tuple2print(tuple3)>>>(1, 2, 3, 4, 5, 7, 8, 9, 2)
元组删除
元组中的元素是不可以删除的,但是可以使用del语句删除整个元组,此时打印该元组的话,就会报该元组未定义
del tuple3print(tuple3)>>>name 'tuple3' is not defined
元组脚本操作符
表达式 | 结果 | 描述 |
---|---|---|
len([1,2,3,4]) | 4 | 返回长度 |
(1, 2, 3)+ (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 元组组合,类似字符串拼接 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', 'Hi!') | 元组元素重复 |
3 in (1, 2, 3) | True | 判断元素是否在当前元组 |
元组内置函数
函数名 | 描述 |
---|---|
len(tuple) | 元组的长度 |
max(tuple) | 返回元组的最大值 |
min(tuple) | 返回元组的最小值 |
tuple(seq) | 将列表转化为元组 |
6 Python字典
在python中,所谓字典就是一种key-value结构
的数据类型的容器,k-称为是一个键值对,每个键值对使用:
分隔,而每个键值对使用,
分割,而一个字典则用一个大括号{}
表示.用来存储任意类型的对象.
注意:
1 在字典中,key(键)一般是唯一的,如果键一致,则后面会覆盖前面2 在字典中,value(值)可以不唯一,并且可以是任何的数据类型3 键必须是不可以变的,值则可以取任何类型4 由于键值是不可变的,所以不可以使用列表来表示键5 字典是无序的,key必须是唯一的,so 天生去重
字典创建
person = { "name":'gavin', "sex":"男", "age":25, "birthday":'2021-01-01'}
字典元素查询
查找元素的时候有两种方式
方式一:[]
person['name']# 注意,如果字典中没有对应的key,则会报错
方式二:.get()
person.get('name')>>>gavin#注意:如果没有对应的key,则返回None,一般获取元素使用该方式比较稳妥
字典元素修改
修改字典,通过key来修改,若修改的key不存在,则变为对字典中key-value键值对的添加操作
person = { "name":'gavin', "sex":"男", "age":25, "birthday":'2021-01-01'}person['birthdy']='1996-06-29'person['hobby']='lqy'print(person)
运行结果:
{'name': 'gavin', 'sex': '男', 'age': 25, 'birthday': '2021-01-01', 'birthdy': '1996-06-29', 'hobby': 'lqy'}
合并更新
b={'name':'colby','age':'29','height':'75Kg'}person.update(b)#存在就更新,不存在就新增
字典元素新增
字典中对键值对的添加操作就是一个简单的赋值
person['ppp':'xxx']
字典元素删除
删除字典可以直接删除整个字典,也可以根据key来删除对应的键值对
del person # 删除字典person.clear()#清空字典所有记录del person['name']#删除字典中key为'name'的键值对
安全删除法
del person.get('name')
字典内置函数
函数名 | 描述 |
---|---|
len(dict) | 字典的键的总数 |
str(dict) | 输出字典可打印的字符串表示 |
type(dict) | 返回输入的变量类型 |
字典常用方法
函数名 | 描述 |
---|---|
dict.values() | 打印所有值 |
dict.keys() | 打印所有键 |
dict.setdefault('name','age') | 存在就显示,不存在就新增一个值 |
dict.item() | 字典转化为列表 |
dict.formkeys([2,3,4],"test") | 字典初始化 |
测试setdefault方法
#不存在则新增b={'name':'colby','age':'29','height':'75Kg'}p =b.setdefault('ppp','test')print(b)>>>{'name': 'colby', 'age': '29', 'height': '75Kg', 'ppp': 'test'}#存在则显示b={'name':'colby','age':'29','height':'75Kg'}p =b.setdefault('name')print(b)>>>{'name': 'colby', 'age': '29', 'height': '75Kg'}
字典循环
在字典中有两种循环方法
方法一:高效,建议使用
for item in person: print(person[item])
方法二:效率低,不建议使用
for k,v in person.items(): print(k,v)