Python--函数
2021/7/14 22:12:52
本文主要是介绍Python--函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
函数基础
概念:一系列Python语句的组合,可以在程序中运行一次或者多次,一般是完成具体的独立的功能。
为什么使用函数:代码的复用最大化以及最小冗余代码,整体代码结构清晰,问题局部化。
函数定义:
def 函数名(参数列表):0-n个
函数体【一系列的Python语句,表示独立的功能】
函数的调用:
本质上就是去执行函数定义里面的代码块,在调用函数之前,必须先定义。
# 函数的定义 def printInfo(): # 函数代码块 print('校长的身高是%f'%1.76) pass # 函数的调用 printInfo() def printInfo(name,height,weight): # 函数代码块 print('%s的身高是%f'%(name,height)) print('%s的体重是%f'%(name,weight)) pass # 调用带参函数 printInfo('卡卡',169,50)
函数说明文档:函数内容的第一行可以用字符串进行函数说明,也就是添加多行注释进行说明
函数参数
参数:就是函数为了实现某项特定的功能,为了得到实现功能所需要的数据。
参数的分类:
必选参数、默认参数【缺省参数】、可选参数、关键字参数
-
必选参数
def sum(a,b): #形式参数:只是意义上的一种参数,在定义的时候不占内存地址 sum = a+b print(sum) pass # 函数的调用 在调用的时候必选参数,是必须要赋值的 sum(10,12) #实际参数:10,12 实参,是实际占用内存地址的
-
默认参数
# 默认参数 必须在参数列表的最后面 def sum1(a=3,b=9): print('默认参数使用=%d'%(a+b)) pass # 默认参数调用 sum1() #在调用的时候如果未赋值,就会用定义函数时给定的默认值 sum1(10)
-
可变参数
# 可变参数(当参数的个数不确定时,比较灵活 def getComputer(*args): ''' 计算累加和 args :可变长的参数类型 ''' # print(args) re = 0 for item in args: re+=item pass print('re=%d'%re) pass getComputer(2,3,4)
-
关键字可变参数
# 在函数体内,参数关键字是一个字典类型,key是一个字符串 def keyFunc(**kwargs): print(kwargs) pass # 调用 # keyFunc(1,2,3) 不可以传递 dictA = {'name':'lll','age':12} keyFunc(**dictA) keyFunc(name='peter',age=90) keyFunc() #空 # 组合使用 def complexFun(*args,**kwargs): ''' 可选参数必须在关键字可选参数之前 可选参数:接受的数据是一个元组类型 关键字可选参数:接受的数据是一个字典类型 ''' print(args) print(kwargs) pass complexFun(1,2,3,name='吉吉') complexFun(age=12)
函数返回值
概念:函数执行完以后会返回一个对象,如果在函数的内部有return,就可以返回实际的值,否则返回None。
类型:可以返回任意类型,取决于 return后面的类型
用途:给调用方返回数据
在一个函数体内可以出现多个return值,但只能返回一个return
# 累加 def calComputer(num): re=0 i=1 while i<=num: re+=i i+=1 pass return re pass # 调用函数 value=calComputer(5) print(value) def returnType(): #return 1,2,3 #返回元组类型的数据 return {"name":"刻苦"} #返回字典类型的数据 pass print(returnType())
函数的4种基本类型:
- 无参数,无返回值,一般用于提示信息打印
- 无参数,有返回值,多用于在数据采集中,比如获取系统信息
- 有参数,无返回值,多用在设置某些不需要返回值的参数设置
- 有参数,有返回值,一般是计算型的,需要参数,最终也要返回结果。
局部变量
在函数内部定义的变量,作用域仅局限在函数内部
不同的函数,可以定义相同的局部变量,
作用:为了临时的保存数据,需要在函数中定义来进行存储
全局变量
当全局变量和局部变量出现重复定义的时候,会优先使用函数内部定义的变量
如果在函数的内部对全局变量进行修改的话,必须用global 关键字进行声明。
引用:
- 在Python中,万物皆对象,在函数调用的时候,实参传递的就是对象的引用。
- 参数传递是通过对象引用来完成,
匿名函数
使用lambda 关键字创建匿名函数,所谓匿名即这个函数没有名字,不用def 关键字来创建标准的函数。
语法:
lambda 参数1、参数2.....:执行表达式
特点:
-
使用lambda关键字创建函数
-
没有名字的函数
-
匿名函数冒号后面的表达式有且只有一个,注意:是表达式,不是语句。
-
匿名函数自带return,return的结果就是表达式计算后的结果。
#匿名函数 M=lambda x,y:x+y #通过变量去调用匿名函数 print(M(2,4)) #三元 func=lambda x,y:x if x>y else y print(func(2,12)) #直接调用 rs=(lambda x,y:x if x>y else y)(12,21) print(rs)
缺点:
lambda只能是单个表达式,不是一个代码块,lambda的设计就是为了满足简单函数的场景,仅仅能封装有限的逻辑,复杂逻辑实现不了,必须使用def来处理。
递归函数
递归满足的条件:
- 自己调用自己
- 必须有一个明确的结束条件
优点:逻辑简单、定义简单
缺点:容易导致栈溢出,内存资源紧张,甚至内存泄漏
这篇关于Python--函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程