python 函数调用

一、函数的定义

首先语法格式:

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]("欢迎您")

运行结果:

4 8 16
hello
world

参考链接:

https://blog.csdn.net/jcf52/article/details/123238718

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值