七、函数的定义与实现

本文详细介绍了Python中的函数,包括其定义、特点及多种使用技巧,如形参与实参、返回值、设置参数默认值、序列与字典传参以及返回多个数据等。通过这些技巧,可以提升代码的可读性和复用性。

一、函数是什么

  • 函数是实现具有特定功能的代码
  • Python中预制了很多内置函数
  • 开发者也可以创建自定义函数

二、函数的特点

  • 隐藏实现功能细节
  • 重用代码
  • 提高可读性,便于调试

三、函数的定义

  • 语法
def 函数名([形式参数1,...,形式参数n]):
    要运行的代码(函数体)
    return 返回的数据
  • 示例
def print_verse(verse_name):
    if verse_name == '静夜诗':
        print("床前明月光")
        print("疑是地上霜")
        print("举头望明月")
        print("低头思故乡")
    elif verse_name == '春晓':
        print("春眠不觉晓")
        print("处处闻啼鸟")
        print("夜来风雨声")
        print("花落知多少")


print_verse('春晓')
  • 在无需返回数据时,return语句可以忽略不写

四、函数的使用技巧

1.什么是形参和实参

  • 参数就是调用函数时给函数的输入数据,在程序运行时可以根据参数不同执行不同代码
  • 形参:形式参数,用于定义函数规定需要传入的参数,就如上述示例中的verse_name
  • 实参:实际参数,在调用函数时,传入的要实际使用的数据,就如上述示例中的'春晓'

2.函数的返回值

  • 参数是函数的输入数据,而返回值则是函数的输出结果
  • return不是必须的,return语句执行后,函数将中断执行

3.函数的使用技巧一

  • 设置参数默认值:在定义函数时,可以给参数设置默认值,当没有传入参数时,采用默认值

    def say_hello(no='1'):
        if no == '1':
            print("hello")
        if no == '2':
            print("Hello")
    
    
    say_hello('2')
    say_hello()
    

    在这里插入图片描述

  • 形参形式传参(关键字传参):当函数参数有多个时,如果使用常规的“位置传参”使用起来容易混淆,而关键字传参可以更清晰的表达传参用意

    def man_info(name, age, salary):
        print(name, age, salary)
    
    
    man_info(name='Schuyler', age=28, salary=20000)
    
  • 混合形式传参:即可按位置传参,同时又强制了一部分参数必须关键字传参的形式称为混合形式传参

    • 可以使用*强制要求必须使用关键字传参,*代表之后所有参数传参时必须使用关键字传参
    def man_info(name, *, age, salary):
        print(name, age, salary)
    
    
    man_info('Schuyler', age=28, salary=20000)
    

4.函数的使用技巧二

  • 序列传参: 在调用函数时可以将序列中的元素作为实参传入函数中,需要在实参前添加前缀*,这样函数会根据序列的顺序依次将元素作为实参传入函数

    def method1(num1, num2, num3):
        return num1 * num2 + num3
    
    
    lst = [2, 3, 6]
    print(method1(*lst))
    

    在这里插入图片描述

  • 字典传参:在调用函数时可以将字典中的键名对应形参,将值作为实参传入函数中,只需要在实参字典前添加前缀**

    def method(name, age, salary):
        print(name, age, salary)
    
    
    info = {'name': 'Schuyler', 'age': 28, 'salary': 10000}
    method(**info)
    

    在这里插入图片描述

  • 返回多个数据:返回多个数据其实就是将多个数据进行封装,最常用的是将多个数据封装成字典后再将字典返回

    def method():
        man_info = {
            'emp': [{'name': 'cai', 'age': 28}, {'name': 'zheng', 'age': 28}],
            'position': [{'name': 'cai', 'p': '爸爸'}, {'name': 'zheng', 'p': '妈妈'}]
        }
        return man_info
    
    
    print(method())
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yGhLBIM7-1574604321788)(https://note.youdao.com/yws/res/43294/6A82527806284CB2A373B1D9F1DB54B6)]

5.函数的使用技巧三

  • 定义函数时,形参前添加前缀*,从此形参位置开始,后面输入的所有参数都会收集成一个元祖作为实参传入函数中
def my_func(num, *nums):
    print(num)
    print(nums)


my_func(1, 2, 3, 4, 5)

在这里插入图片描述

  • 定义函数时,形参前添加前缀**,从此形参位置开始,将key=value的实参打包成字典传入函数中
def my_func(num, **dic):
    print(num)
    print(dic)


my_func(1, name='Schuyler', age=23)

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值