一、函数的定义
首先语法格式:
def 函数名(参数列表):
函数体(功能代码块)
二、函数的调用
1.求两个整数的和:
def add(a,b):
sum = a+b
return sum
n = int(input('请输入第一个数字:')) #注意int的添加,不然结果只能是拼接符“+”拼接的字符串
n1 = int(input('请输入第二个数字:'))
math = add(n,n1)
print(math)
运行结果:
请输入第一个数字:1
请输入第二个数字:2
3
2.关键参数
关键参数指通过对形参赋值的方式传递参数,避免了传递实参过程中,与定义函数的形参顺序不一致的情况。
def student(name,score):
print(f"{name}的分数为{score}")
n = input('请输入学生名字:')
n1 = input("请输入学生分数:")
student(score=n1,name=n)
运行结果:
请输入学生名字:小明
请输入学生分数:100
小明的分数为100
3.默认参数
在函数定义时参数列表中的某个形参有值,则这个参数为默认参数。默认参数必须放在非默认参数的右侧。否则函数将出错。
def student(name,score,love="打篮球"):
print(f"{name}的分数为{score},喜欢{love}")
n = input('请输入学生名字:')
n1 = input("请输入学生分数:")
student(score=n1,name=n)
#当然可以改变默认参数,在调用参数时改:
student(score=n1,name=n,love="movies")
运行结果:
请输入学生名字:小明
请输入学生分数:100
小明的分数为100,喜欢打篮球
小明的分数为100,喜欢movies
4.不定长参数
两种不定长参数,第一种是*XXX,在传入额外的参数时可以不用指明参数名,直接传入参数值即可。第二种是**XXX,这种类型返回的是字典,传入时需要指定参数名。
加了一个星号 * 不定长参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。加了两个星号 ** 的参数会以字典的形式导入,存放已命名的变量参数。
def add(a,b,*args,**kwargs):
sum = a+b
for i in args:
sum +=i
for i in kwargs:
sum +=kwargs[i]
return sum
print(add(1,2,3,4,5,6,7))
print(add(1,2,3,4,c=7,d=7))
运行结果:
28
24
5.函数调用的嵌套
def output(mess):
print(mess)
def test(func,arg):
func(arg)
test(output,"1+2=3")
运行结果:
1+2=3
6.函数名作为其他数据类型的元素
def print_out(mess):
print(mess)
list = [(print_out,"hhh"),(print_out,"love")]
for (fun,val) in list:
fun(val)
运行结果:
hhh
love
三、匿名函数
指函数是没有函数名称的,临时使用的微函数。使用 lambda 表达式来声明,语法格式如下:
lambda [arg1 arg2 , ... , argn] : 表达式
应用场景:如果一个函数有一个返回值,并且只有一句代码,可以使用lambda简化
注意:1.[arg1 ,arg2 , ... , argn ] 为函数的参数列表,可有可无
2.表达式: 表示函数体,必须有返回值
3.lambda 表达式只可以包含一个表达式,计算结果可看作是一个函数的返回值。
4.虽然不允许包含复杂的语句,但表达式可以调用其它函数。
1.基本使用
sum = lambda num1, num2: num1 + num2
print(sum(4, 9))
相当于:
def sum(num1, num2):
return num1 + num2
运行结果:
13
2.lambda 表达式声明的匿名函数,也可以作为自己定义函数的实参
def fun(num1, num2, func):
return func(num1, num2)
print(fun(5, 4, lambda num1, num2: num1 + num2))
print(fun(5, 4, lambda num1, num2: num1 - num2))
运行结果:
9
1
3.带判断的lambda
fun = lambda a,b:a if a>b else b
print(fun(20,22))
运行结果:
22
4.lambda 表达式声明的匿名函数,也可以作为列表或字典的元素
power = [lambda x:x**2,lambda x:x**3,lambda x:x**4]
print(power[0](2),power[1](2),power[2](2))
lv = {1:lambda x:print(x),2:lambda x = "回头科科":print(x)}
lv[2]()
lv[1]("欢迎您")
运行结果:文章来源:https://www.toymoban.com/news/detail-620579.html
4 8 16
hello
world
参考链接:
https://blog.csdn.net/jcf52/article/details/123238718文章来源地址https://www.toymoban.com/news/detail-620579.html
到了这里,关于python 函数调用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!