zoukankan      html  css  js  c++  java
  • 初识函数

    一、什么是函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段

    二、定义函数

    def 函数名(参数1,参数2,参数3,……):
        """注释"""
        函数体
        return 返回的值

    三、函数的调用

    1、调用函数

    函数的调用:函数名加括号

      1、先找到名字

      2、根据名字调用代码

    2、函数返回值

    什么时候该有返回值

    调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值,通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果

    什么时候不需要返回值

    调用函数,仅仅只是执行一系列的操作,最后不需要得到什么结果,则无需有返回值,通常无参函数不需要有返回值

    四、函数的参数

    形参

    1、位置参数必须传值

    def mymax(x,y):
        the_max=x if x > y else y
        return the_max
    maxnum=mymax()#调用函数时不传参数
    print(maxnum)
    
    报错:TypeError: mymax() missing 2 required positional arguments: 'x' and 'y'
    类型错误,mymax()缺少两个必须的位置参数x和y
    2、默认参数(若不传递,会显示设置的默认值)
    def stu_info(name,sex=''):
        print(name,sex)
    stu_info('alex')#alex 男
    stu_info('eva','')#eva 女
    实参
    参数排放顺序:位置参数-->*args-->默认参数-->**kwargs
    1、按位置传参
    def mysum(x,y):
        return x+y
    num=mysum(10,20)
    print(num)#30
    2、按关键字传参
    def mymax(x,y):
        the_max=x if x > y else y
        return the_max
    maxsum=mymax(y=10,x=20)#关键字传参
    print(maxsum)#20
    3、混合传参 关键字参数永远在位置参数后面
    def mymax(x,y):
        the_max=x if x > y else y
        return the_max
    maxnum=mymax(10,y=20)
    print(maxnum)#20

    动态传参
    动态参数,也叫不定长传参,就是你需要传给函数的参数很多,不定个数,那这种情况下,你就用*args,**kwargs接收
      args是元组形式,接收除去键值对以外的所有参数
      kwargs接收的只是键值对的参数,并保存在字典中
    1、*args接收不定长的所有位置参数
    args可以接收不确定个数的参数

    def func(*args):
        print(args,type(args))
    func(1,2,'alex')#(1, 2, 'alex') <class 'tuple'>
    若将*args放在最前边,它会接收全部参数,a,b就没有对应的实参了

    def func(*args,a,b):
        print(a)
        print(b)
        print(args,type(args))
    func(1,2,'alex',3,4)
    # TypeError: func() missing 2 required keyword-only arguments: 'a' and 'b'
    # func()缺少两个必须的关键字参数a和b
    有默认参数的时候,要放在*args后边
    def func(a,b,*args,sex=''):
        print(a)
        print(b)
        print(args,type(args))
        print(sex)
    func(1,2,'alex','wusir','ritian')
    """
    1
    2
    ('alex', 'wusir', 'ritian') <class 'tuple'>
    男
    """
    2、**kwargs接收所有的关键字参数
    接收关键字参数
    def func(**kwargs):
        print(kwargs)
    func(a=1,b=4,c=3)#{'a': 1, 'b': 4, 'c': 3}
    位置参数、*args、默认参数、**kwargs
    def func(a,*args,sex='',**kwargs):
        print(a)
        print(sex)
        print(args)
        print(kwargs)
    func(1,'alex','wusir','ritian',sex='',name='taibai',age=21)
    """
    1
    女
    ('alex', 'wusir', 'ritian')
    {'name': 'taibai', 'age': 21}
    """

    万能参数

    def func(*args,**kwargs):
        print(args)
        print(kwargs)
    func(1,name='alex')
    """
    (1,)
    {'name': 'alex'}
    """
     
  • 相关阅读:
    基本數據類型
    5月28号 垃圾回收机制
    5月28 基本运算符
    5月30日 循环之while循环
    5月28号 与用户交互
    5月31日 基本数据类型(列表类型 字典类型 元组)及其内置方法
    5月30号 基本数据类型(整数型 字符串类型)及其内置方法
    變量
    5月29日 学习笔记 可变不可变类型 成员运算符和身份运算符 条件 流程控制之if判断
    关于Flash CS4字体不能加粗的问题[附解决方法]
  • 原文地址:https://www.cnblogs.com/z-x-y/p/9172139.html
Copyright © 2011-2022 走看看