python中函数的定义和调用

1.什么是函数?

       函数是编程中的一种封装机制,用来将一组可重复使用的代码片段组织在一起,以便在不同的地方调用。函数可以接收输入(称为参数),执行特定的操作,并且可以返回输出(称为返回值)。函数的主要目的是提高代码的复用性、可读性和组织性。

2. 函数定义的语法:

       使用 def 关键字定义函数,接下来是函数名和参数列表。参数列表可以为空,也可以包含多个参数,多个参数用逗号分隔。函数体是缩进的代码块,它包含函数的执行逻辑。return 语句用于返回函数的结果,return 是可选的,如果没有 return,函数默认返回 None

 

3. 调用函数的语法

 

示例:

 

4.函数的多个返回值:

函数可以同时返回多个值,返回的值可以用不同的变量接收,这些返回值会被打包成一个元组

注意点:

  • 函数可以返回多个值,多个返回值以逗号分隔,默认打包成元组返回。
  • 调用时,可以通过多个变量解包来获取每个返回值。
  • 5. 多种传参方式: 

    (1)位置参数:

    按参数定义的顺序进行传参。调用函数时,实参的顺序必须与形参顺序匹配。

    (2) 关键字参数

    使用参数名进行传参,顺序可以与定义时不同,调用时不必按顺序,只需提供参数名即可。

     

    (3) 混合位置传参和关键字传参

    可以结合位置参数和关键字参数,不过要注意,位置参数必须出现在关键字参数之前。

    (4)缺省参数(默认参数)

    在函数定义时,可以为参数指定一个默认值,这样调用函数时如果没有为该参数传递值,则会使用默认值。 

    缺省参数需要放在非缺省参数之后,否则会导致语法错误。

    6. 不定长参数 

    (1)*位置不定长参数(args)

    使用 *args 可以接收任意数量的位置参数,传入的参数会被打包成元组。

    *args 可以让函数接受不定数量的参数,实参传入后会变成一个元组。

    (2)**关键字不定长参数(kwargs)

    使用 **kwargs 可以接收任意数量的关键字参数,传入的参数会被打包成字典。

    **kwargs 接收的是字典类型,参数传入时需要以键值对的形式给出。

    7.总结:

    1. 函数的返回值:可以通过 return 返回多个值,用元组的形式返回并可以通过解包获取。
    2. 参数传递方式
    3. 位置参数:按顺序传递参数。
    4. 关键字参数:通过参数名传递,顺序无关。
    5. 混合参数:位置参数在前,关键字参数在后。
    6. 缺省参数:可以为参数设置默认值,未传值时会使用默认值。
    7. 不定长参数
    8. *args 接受任意数量的位置参数,传入的参数打包为元组。
    9. **kwargs 接受任意数量的关键字参数,传入的参数打包为字典。

    练习源码:

    #函数的多个返回值
    def test_return():
        return 1,"word",False
    x,y,z=test_return()
    print(x,y,z)
    
    #多种传参方式
    def use_info(name,age,sex):
        print(f"用户的姓名:{ name},年龄是:{age},性别是:{sex}")
    #位置传参
    use_info("小明",19,"男")
    
    #关键字传参
    use_info(age=18,name='小花',sex=19)
    #混合位置传参和关键字传参
    use_info('小美',sex='女',age=22)
    
    #缺省参数(默认值)
    def use_info1(name,age=30):
        print(f"姓名是:{name}.年龄为:{age}")
    use_info1('小刚')
    use_info1('小麦',16)
    
    #不定长-位置不定长  *号
    #不定长定义的形式参数会作为元组存在,接受不定长数量的参数传入
    def user_info3(*args):
        print(f"args参数的类型是:{type(args)},内容是:{args},第一个传进的参数是{args[0]}")
    user_info3(1,2,3,4,5)
    
    #不定长 - 关键字不定长 **号
    def user_info4(**kwargs):
        print(f"args参数的类型是:{type(kwargs)},内容是:{kwargs}")
    user_info4(name='小鸟',age=22)

    作者:倾听醉梦语

    物联沃分享整理
    物联沃-IOTWORD物联网 » python中函数的定义和调用

    发表回复