初识python 函数(定义,传参,返回值)
Posted 暗香丶
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了初识python 函数(定义,传参,返回值)相关的知识,希望对你有一定的参考价值。
python基础(二):
菜鸟教程基础知识讲解的非常全面,内容选择我认为的重点输出一遍
函数:
定义一个函数:
你可以定义一个由自己想要功能的函数,以下是简单的规则:
def fun(arg): pass return arg # 函数调用语法 fun(arg)
- arg:argument,参数(也叫prarmeter) ,任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
- def:define,定义,创建函数 ,函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
- 代码缩进表示语句块,表明代码从属关系
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
函数的调用:
将参数传入已经定义好的函数中,便可以调用此函数
def printme( str ): "打印任何传入的字符串" print (str) return # 调用函数 printme("我要调用用户自定义函数!") printme("再次调用同一函数") 以上实例输出结果: 我要调用用户自定义函数! 再次调用同一函数
-
所谓“返回值”,就是程序中函数完成一件事情后,最后给调用者的结果
-
#定义函数 def add2num(a, b): return a+b #调用函数,顺便保存函数的返回值 result = add2num(100,98) #因为result已经保存了add2num的返回值,所以接下来就可以使用了 print (result) --->198
函数返回值可以为多个:
-
def divid(a, b): ... shang = a//b ... yushu = a%b ... return shang, yushu ... >>> sh, yu = divid(5, 2) >>> sh 5 >>> yu 1
函数根据有没有参数,有没有返回值,可以相互组合,一共有4种
-
无参数,无返回值
-
# 函数定义,初级 def numsum(): a = 5 b = 10 c = a + b print(c) # 函数执行 numsum() --->15
-
-
无参数,有返回值
-
有参数,无返回值
-
有参数,有返回值
- 输入参数:
- 形参:形式参数,声明函数时,括号()中的参数
- 实参:实际参数,调用函数是,括号()中的参数
- 实参将值传给形参,本质上是变量赋值
- 返回值:return
- 会终止函数执行(return是函数的最后一句),并返回一个值给调用方
- 不带表达式的return返回None
- Print()不是返回值,只是输出信息到界面
-
# 函数定义,带输入输出 def numsum2(a, b): c = a + b return c # 函数调用 d = numsum2(10, 20) print(d) --->30
- 输入参数:
函数中参数的类别:
- 必需参数
-
#可写函数说明 def printme( str ): "打印任何传入的字符串" print (str) return #调用printme函数 printme()
-
- 关键字参数
-
def about(name,course,site): print (name,course,site) about(site=‘www.baidu.com‘,name=‘green‘,course=100) ##以关健字方式传入参数(可以不按顺序)
-
- 默认参数
-
def about(name,course,site): print (name,course,site) about(‘jim‘,‘100‘,‘www.baidu.com‘) ## 必须按顺序传参
-
- 不定长参数
-
- 非关键字可变参数(元组)
- 放在默认值参数后面
- 可将传入的不确定数量的默认参数聚合为元组方便函数使用
-
def fun(a, b, *args): print(a) print(b) print(args) print("="*30) ret = a + b for i in args: #便利args中的元素 ret += i return ret print(fun(1,2,3,4)) 结果: 1 2 (3, 4) ============================== 10
- 关键字可变参数(字典)
- 放在非关键字可变参数后面
- 可将传入的不确定数量的默认值参数聚合为字典方便函数使用
-
def fun(a, b, *args, **kwargs): print(a) print(b) print(args) print(kwargs) fun(1, 2, 3, 4, name = "hello", age = 20) 结果: 1 2 (3, 4) {‘name‘: ‘hello‘, ‘age‘: 20}
- 非关键字可变参数(元组)
-
尽量避免多种参数格式混合(主要是两种可变参数)
多参数混合时注意顺序: 一般顺序是:默认参数,默认值参数,非关键字可变参数,关键字可变参数
注意:
带关键字的参数必须放在最后
匿名函数:
- 语义上讲,lambda 只是普通函数定义中的一个语法技巧,书写代码更简洁(但不易懂)
- lambda 是一个表达式(非代码块),比 def 简单,仅能封装有限的逻辑如if else分支,不能使用多项分支和循环,不适合复杂操作
# 普通函数 def def_sum(a, b): return a + b def_sum(5, 10) # 匿名函数:变量名 = lambda 参数... : 表达式计算 lambda_sum = lambda a, b: a + b lambda_sum(5, 10)
--->15
分支匿名函数 # 普通函数 def def_gender(g): if g == 1: return ‘男性‘ else: return ‘女性‘ def_gender(0) # 匿名函数:变量名 = lambda 参数... : 分支1的值 if 判断条件 else 分支2的值 lambda_gender = lambda a: ‘男性‘ if a == 1 else ‘女性‘ lambda_gender(1) --->男性
# 普通函数 def absum(a, b): return a + b def def_sum2(a, b, c): return absum(a, b) + c def_sum2(1,2,3) # 匿名函数:变量名 = lambda 参数... : 其他函数组成的表达式 def absum(a, b): return a + b lambda_sum = lambda x, y, z: absum(x, y) + z lambda_sum(1,2,3)
--->6
以上是关于初识python 函数(定义,传参,返回值)的主要内容,如果未能解决你的问题,请参考以下文章