今天一天的知识点总结,有不足之处,请大家留言,一起讨论。
模块导入
import copy#导入copy(拷贝)这个模块
copy.deepcopy()#使用这个copy这个组件中的这个deepcopy这个组件(深度拷贝)
2.from copy import deepcopy#导入copy中的deepcopy这个组件(只导入这个组件)
string类型操作及切片操作
str1=‘abc’
str2=‘bde’
print(str1 +str2 )#相加就是字符串拼接
print(str1 *5)#打印str15次
切片操作:、
str1='abc'
str2='bde'
for i in str1 :
print(type(i ) )
#print(str2 [0:2])#对字符串进行切断
print(str2 [::-1])#才末尾开始取,倒序输出
python的函数
为什么要使用函数?代码可以复用(可复用性)。
(定义方法:定义函数 定义名称(形成)
def funcName(args1):
pass(空方法,定义没有用)
def haha():
print()#定义一个无参的函数
def xixi_args(name,age):
print('name=%s,age=%d'%(name ,age )) #定义有参无返
def xixi_arge_value(name,age=20):
print('name=%s,age=%d'%(name ,age ))
if __name__=='__main__':#函数的调用
# print()
#print( type (xixi_args('python',20)) )
#print(xixi_arge_value('name') )
xixi_arge_value('liwenbo')#输出
xixi_arge_value('liwenbo',age= 88)#输出修改参数为88
#不定长参数定义
def func(*args):#*为不定长是元组**是字典
print('sum=%d'%min(args ))
if __name__=='__main__':
func(1,2,3,4)
#清理函数
def cleanWork():
print('already clean!')
#函数参数是function类型
def func(name,callback=cleanWork):
print('name=%s'%name)
callback()#call function函数回调
if __name__=='__main__':
func('counnect,database')
定义输出
def lx():
return [1,2,3,4]#定义输出
if __name__=='__main__':
x=lx()
print(x )
函数体局部变量生命周期(仅限于函数体内部)
全局变量的改变
def haha():
global x #指向全局变量x
x+=10#此时修改变量会影响全局
haha()
print(x )
函数嵌套
def haha():
def xixi():
pass
print(x )
nonlocal(能获取外变量的变量值)
def haha():
x=1
def xixi():
nonlocal x
x+=10
print('x=%d'%x )
xixi() #类似于调用函数没有括号为指针。
函数调用
x=10#全局变量
def haha():
x=1
def xixi():
nonlocal x
x+=10
print('x=%d'%x )
return xixi() #返回一个函数的引用
x=haha()#haha的调用
print(type (x ))
print(haha() )
闭包
镶嵌式模型
在内部引用外部变量、
函数外层返回内部函数的引用
闭包应用场景(装饰器)
def wrapper(func):
def inner():
print('func invoke start...')
func () #func function调用
print('func invoke end...')
return inner
#@wrapper起到作用等于func=wrapper(func)
@wrapper #装饰器
def func():#数据库其他函数的释放
print('func invoke...')
@wrapper
def test():
print('test () invoke...')
func ()
test ()
匿名函数
#定义一个匿名函数
func =lambda x:x+1
#等于
#def test(x):
print(type (func ))
print(func (1))
匿名函数和filter的使用
l=['abcd','abc','acd','jkh']
for item in filter(lambda x:len(x )>=2 ,l ) :
print(item )
reduce结合lamda用法
from functools import reduce #导入函数
l=[1,2,3,4]
print(reduce(lambda x,y:x+y ,l,) )#l的加法l,还有就一起加上