Python函数和模块运用实践

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函数和模块的学习总结,希望能帮助到大家。***

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值