函数参数调用 4.0

目录

一、掌握函数的定义及调用

a.函数的使用

1.函数定义

2.函数调用

3.函数执行

4.函数返回结果

二、掌握函数的参数传递

a.位置参数

b.关键字参数

c.默认值参数

d.可变参数

三、掌握函数的返回值


一、掌握函数的定义及调用

函数是将一段实现功能的完整代码,使用函数名称进行封装,通过函数名称进行调用。

以此达到一次编写,多次调用的目的。

内置函数自定义函数函数调用

输出函数print()

输入函数input()

列表定义函数list()

def 函数名称(参数列表):

      函数体

      [return返回值列表]

函数名(参数列表)

def get_sum(num):
    s=0
    for i in range(1,num+1):
        s+=i
    print(f'1到{num}之间的累加和为:{s}')

# 函数的调用
get_sum(10) # 1-10之间的累加和
get_sum(100) # 1-100之间的累加和
get_sum(1000) # 1-1000之间的累加和

函数的使用

1.函数定义

  • 使用关键字def
  • 确定函数名称、参数名称、参数个数、编写函数体(用于实现函数功能的代码)

2.函数调用

  • 通过函数名称进行调用函数
  • 对函数的个个参数进行实际的赋值

3.函数执行

使用实际参数参与函数功能的实现

4.函数返回结果

函数执行结束后,如果使用return进行返回结果,则结果被返回到函数的调用处

二、掌握函数的参数传递

位置参数关键字参数默认值参数
是指调用时的参数个数和顺序必须与定义的参数个数和顺序相同是在函数调用时,使用‘形参名称=值’的方法进行传参,传递参数顺序可以与定义时参数的顺序不同是在函数定义时,直接对形式参数进行赋值,在调用时如果该参数不传值,将使用默认值,如果该参数传值,则使用传递的值

a.位置参数

# 位置参数
def hb(name,age):
    print('祝'+name+'生日快乐')
    print(str(age)+'生日快乐')

# 调用
# hb('蟹老板') # TypeError: hb() missing 1 required positional argument: 'age'

# hb(18,'蟹老板') # TypeError: can only concatenate str (not "int") to str

#正确的调用方式
hb('蟹老板',18)

b.关键字参数

# 关键字参数
def hb(name,age):
    print('祝'+name+'生日快乐')
    print(str(age)+'岁生日快乐')

# 关键字传参
hb(age=18,name='蟹老板')

# hb(age=18,name1='蟹老板') # TypeError: hb() got an unexpected keyword argument 'name1'

hb('痞老板',age=18) # 正常执行,位置传参,也可以使用关键字传参
# hb(name='痞老板',18) # SyntaxError: positional argument follows keyword argument

# 位置传参在前,关键字传参在后

c.默认值参数


# 默认值参数
def hb(name='蟹老板',age=18):
    print('祝'+name+'生日快乐')
    print(str(age)+'岁生日快乐')

# 调用
hb() # 不用传参
hb('章鱼哥') # 位置传参
hb(age=18) # 关键字传参,name采用默认值
# hb(18) # TypeError: can only concatenate str (not "int") to str

def fun(a,b=20): # a 作为位置参数, b默认值参数
    pass

# def fun2(a=20,b): # 报错了,语法错误, 当位置参数和默认值参数同时存在的时候,位置参数在后会报错。 SyntaxError: non-default argument follows default argument
    pass

#  当位置参数和关键字参数同时存在的时候,应该遵循位置参数在前,默认值参数在后

d.可变参数

又分为个数可变的位置参数和个数可变的关键字参数两种,其中个数可变的位置参数是在参数前加一颗星(*para),para形式参数的名称,函数调用时可接收任意个数的实际参数,并收到一个元组中。个数可变的关键字参数是在参数前加两颗星(**para),在函数调用时可接收任意多个“参数=值”形式的参数,并收到一个字典中。

def fun(*para):
    print(type(para))
    for item in para:
        print(item)

# 调用
fun(10,20,30,40)
fun(10)
fun(20,30)
fun([11,22,33,44]) # 实际上传递的是一个参数
# 在调用时,参数前加一颗星,会将列表进行解包
fun(*[11,22,33,44])

# 个数可变的关键字参数
def fun2(**kwpara):
    print(type(kwpara))
    for key,value in kwpara.items():
        print(key,'-----',value)

# 调用
fun2(name='路人鱼',age=18,height=170)

d={'name':'路人鱼','age':18,'height':170}
fun2(d) # TypeError: fun2() takes 0 positional arguments but 1 was given

fun2(**d)

三、掌握函数的返回值

返回值return

  1. 如果函数的运行结果需要再其他函数中使用,那么这个函数就应该被定义为带返回值的函数。
  2. 函数的运行结果使用return关键字进行返回
  3. return可以出现在函数中的任意一个位置,用于结果函数。
  4. 返回值可以是一个值,或多个值,如果返回的值是多个,结果是一个元组类型。

def calc(a,b):
    print(a+b)


calc(10,20)
print(calc(1,2)) # None

def calc2(a,b):
    s=a+b
    return s # 将s返回给函数的调用处去处理

print('-'*10)
get_s=calc2(1,2) # 存储到变量中
print(get_s)

get_s2=calc2(calc2(1,2),3) # 1+2+3 先去执行calc2(1,2)返回 结果为3,再去执行calc2(3,3)
print(get_s2)

# 返回值可以是多个
def get_sum(num):
    s=0 # 累加和
    odd_sum=0 # 奇数和
    even_sum=0 # 偶数和
    for i in range(1,num+1):
        if i%2!=0: # 说明是奇数
           odd_sum+=i
        else:
            even_sum+=i
        s+=i
    return odd_sum,even_sum,s # 三个值

result=get_sum(10)
print(type(result))
print(result)

# 解包赋值
a,b,c=get_sum(10) # 返回3个值,元组类型
print(a)
print(b)
print(c)


总结

  1. 函数定义:def+关键字+小括号+冒号+换行缩进+代码块定义一个函数
  2. 函数调用:函数名加()即可调用该函数
  3. 函数说明文档:函数内容的第一行可以用字符串进行函数说明
  4. 返回值return:程序中函数完成一件事情,给调用者的结果

  • 17
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

FANGNG20

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值