1、函数的定义与调用
#函数名尽量用英文单词命名,并且容易识别意思 #函数的形参有4中类型的参数,位置参数、指定参数、缺省参数和不定长参数,在python实践过程中用的最多的是不定长参数,不定长参数方便代码重构
def introduction(name,Classname,add):#定义一个函数,函数名为introduction,name,Classname,add是形参,也即位置参数
print('''
自我介绍
姓名:{}
班级:{}
地址:{}
'''.format(name,Classname,add)) #三个'表示多行,name,Classname,add是形参,这里进行格式输出
introduction("小明","V2022","深圳") #"小明","V2022","深圳"是实参,在函数名introduction后面加一个小括号,调用函数将实参传给形参,得到函数结果
2、函数的注释和嵌套
def sumtotal(*args):#定一个函数,函数名为sumtotal,形参为不定长参数,是个元组
'''
sumtotal这个函数是用来计算所有元素的和
:param args: 函数的参数
:return: 函数的返回,函数返回的值可被变量接收,函数也可以没有返回值。如果没有return出来值,函数与函数外部没有更多的联系
''' #在函数里面输入三个’‘’,就会自动生产是函数的注释,可再次编写函数的注释信息
s = 0
for i in args:
def Check(): #函数内部,再次定义函数
if isinstance(i,int) or isinstance(i,float): #校验传入的元素是数字
pass
else:
print("{}非数字不能求和".format(i))
quit()
Check() #函数内部再次调用函数,即为嵌套调用
s = s + i
print(s)
return s
sumtotal(1,2,3,4,1.1) #这里调用函数,结果是print(s),打印s
print(sumtotal.__name__) #调用内置函数,输出函数名
print(sumtotal.__doc__) #调用内置函数,输出函数注释信息
sum=sumtotal(1,2,3,4,5) #将调用函数后return的值,赋值给sum
print("这是函数返回出来的值{}".format(sum)) #打印函数return出来的值
3、匿名函数 #只有一行代码的函数
import math
res1=lambda r:r*r*math.pi #定义匿名函数
print("圆的面积为:{}".format(res1(5))) #调用匿名函数,并格式化输出
res2=lambda r:(pow(r,2)*math.pi) #定义匿名函数,搭配内置函数pow()使用
print("圆的面积为:%s"%(res2(5))) #调用匿名函数并占位符输出
4、内置函数,map()函数,map(函数逻辑,可循环序列) #运用map()函数给列表中所有元素乘以2
lst1=[1,2,3,4,5]
print(list(map(lambda x:x*2,lst1))) #lambda x:x*2 为函数逻辑,lst1是一个列表,是可循环序列,map()对序列里面的每个元素执行逻辑
5、内置函数,filter(),输出所有满足过滤条件的元素
lst2=[1,2,3,4,5,6,7,8,9,10]
print(list(filter(lambda x:x%2==0,lst2))) #filter()对序列里面所有满足函数逻辑的元素,判断为True,将返回True的元素放到一个新的列表中
6、装饰器 """ 装饰器:把函数当变量传递 装饰器:python的解释器简化掉所有流程,只要遇到@符号,就去找有没有同名函数,如果有就去先执行同名函数先 装饰器的原理:就是在代码的前面或则后面增加一段逻辑,不改变原有代码 装饰器的作用:增强代码 装饰器的应用:日志输出,权限校验,缓存,事务处理,性能测试等 """
import logging #导入日志模块
def log(fun_name):
def wrapper(*args,**Kwargs):
logging.warning("{}函数正在执行".format(fun_name.__name__))
return fun_name(*args,**Kwargs)
return wrapper
@log #使用装饰器函数
def addsucess(*args,**Kwargs):
print("{}新增成功".format(args)) #format格式化输出不定长参数
if __name__=="__main__":
addsucess('用户','角色','权限')
7、函数模块,分为标准库、第三方库和自定义库。标准库:time、sys、os、json、random,第三方库:xlrd、xlwt、openpyxl、flask。自定义库:自己写的模块(即文件)
import time #导入time库,也可以使用from time import time
print("当前时间戳为:{}".format(time.time()))
print("当前格式化时间为:{}".format(time.strftime('%Y-%m-%d %H:%M:%S')))
print("当前结构化时间获取的年份为:{}\n获取的月份为:{}\n获取的日为:{}".format(time.localtime().tm_year,time.localtime().tm_mon,time.localtime().tm_mday))
8、文件操作 #主要对文件的读取和写入
f=open(r'C:\test01\t1.txt',mode='a+') #打开文件,模式为追加写和读模式
f.write("\npython"+"_"+str(time.time()))
f.seek(0) #文件写入以后,如果不打开文件,再次读是为[],读文件之前需要将指针定位到开头,才能读到文件中的内容
line1=f.readlines() #按行全部读取文件中的内容并且全部读取,read()一个一个读并且全部读取,readline()读取一行,不容易崩溃
print(line1)
f.close() #每次打开文件后,需要关闭文件
with open(r'C:\test01\t1.txt',mode='a+') as file: #也可以用with open() as 变量 来打开文件,好处就是运行完函数后自动关闭文件
file.write("_"+"nihao")
file.seek(0)
n=0
while True: #循环读取文件中前5行数据
if n<5:
print(file.readline())
n += 1
else:
break
***以上就是全部对python函数和模块的学习总结,希望能帮助到大家。***