Python基础学习笔记——函数(1):作用、定义、调用、参数

本文详细介绍了函数的定义和调用方式,包括参数类型如实参、形参、缺省参数、不定长参数等,并解释了参数传递的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

  • 对一组表达特定功能表达式的封装,将特定功能代码编写在一个函数里,就是具体某个功能的代码块(一段代码)
函数作用
  1. 便于阅读
  2. 提高代码的复用性,降低代码冗余
  3. 使程序模块化
  4. 程序员的哲学:重复的事情不做两次
函数的定义
  • 注意: 函数定义的时候不会执行函数里面的代码
def<函数名>(<参数列表>):
    """文档说明"""
    <函数体>
    return <返回值列表>
函数的调用
  • 调用
# 调用带有参数的函数的时候
函数名(实参, ...)

# 调用没有参数的函数的时候
函数名()

# 函数带有返回值的时候会返回一个结果,可以使用变量保存函数返回的这个结果
result = 函数名(param1, param2)      
  • 过程
    • 调用程序在调用函数处暂停执行
    • 调用时将参数(实参)赋值给函数的参数(形参)
    • 执行函数体
    • 返回函数结果,回到调用出继续执行
参数
  • 参数分为:实参、形参、默认参数
缺省参数
  • 定义:形参设置了默认值,那么这个形参可以称为缺省参数。
  • 特点: 如果给缺省参数传值了,那么就使用传入的这个值,否则使用默认值。
  • 注意:函数的形参只接收实参的值,给形参赋值并不影响实参。
def sum_num(num1, num2=10):  # num2这个参数就是缺省参数
    result = num1 + num2
    return result
num = sum_num(1, 2)  # num1=1, num2=2  num=1+2=3
num = sum_num(1)  # num1=1, num2=10  num=1+10=11
不定长参数(多参数冗余处理)
  • 不确定函数参数的个数,可能是0个、1个或者多个参数。
分类
  1. 不定长位置参数(*args)
def xxx(*arge)    # 多出的“参数”会以元组的方式存入args元组中
  1. 不定长关键字参数(**kwargs)
    对于不定长关键字参数传参,关键字的名字可以随便设置
def xxx(**kwargs)  # 多出的“实参”会以字典的形式存入kwargs字典中
  • 例如
def sum_num(*args, **kwargs):
    
    # args: 所有的位置参数都会给args,然后把所有的位置参数封装成一个元组类型
    print(args, type(args))
    
    # kwargs:所有的关键字参数都会给kwargs,然后把所有的关键字参数封装成字典
    print(kwargs, type(kwargs))
    
# 调用的时候,位置参数在前,关键字参数在后
sum_num(1, 2, 3, a=34, b=45, c=56)
普通参数、缺省参数、不定长参数混合使用
  1. 普通参数是不能放在缺省参数后面的
def show(name, age=10):(√)
def show(age=10, name):(×)
    这样调用的时候show('张三'):
        本意是将参数传给name,让age默认为10,
        结果却是'张三'传给了age,name没有值
  1. 缺省参数需要放到*args(不定长参数)的后面
def show(name, *args, age=10):(√)
def show(name, age=10, *args):(×)
    调用show('张三', '男'):
        本意是将参数'男'传给args,让age默认为10
        结果却是'男'传给了age,args没有值
  1. **kwargs(关键子参数)需要放到所有参数的最后面
def show(name, *args, age=10, **kwargs):(√)
# 假如不放到最后面,首先语法就会报错,调用的时候位置参数会乱
错题
  1. 下列关于不定长参数*args**kwargs说法错误的是( D
    A:*args**kwargs是变量名
    B:*的作用,告诉python解释器这个args变量以元祖的方式保存多余的变量参数
    C:**的作用,告诉python解释器这个kwargs变量以字典的方式保存多余的命名参数
    D:调用函数参数时的顺序为:必须传递的参数在最左边,然后是缺省参数,最后是不定长参数
    解析:记住传参的顺序——位置参数、多余的位置参数、关键字参数、多余的关键字参数
函数参数的传递
  1. 按照位置参数方式传参,参数按照位置顺序依次进行传参即可
    强调的是参数的顺序要和函数定义参数的顺序保持一致
  2. 按照关键字方式传参,通过参数名传入相关的参数
    强调的是关键字的名字和函数参数的名字要保持一致,不要求参数的顺序
  3. 前面使用位置参数方式传参后面使用关键字方式传参
    前面使用位置参数方式传参后面使用关键字方式传参

注意:位置参数不能放到关键字参数后面,如果前面使用的关键字方式传参,那么后面的参数必须也使用关键字方式传参

def show(name, age):
    print(name, age)

# 1.按照位置参数方式传参
show("李四", 20)

# 2.按照关键字方式传参
show(age=20, name="李四")

# 3.前面使用位置参数方式传参后面使用关键字方式传参
show("李四", age=20)
# show(name="李四", 20)  # 报错
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鬼义虎神

打赏5C币,作者可获得4C币

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

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

打赏作者

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

抵扣说明:

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

余额充值