• Python的函数


    什么是函数

      函数就是对具有一定功能的代码块的封装,实现对代码的复用。

    定义函数的规则

    1.定义:def 关键词开头,空格之后接函数名称和圆括号()。
    2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。
        参数可以定义多个,也可以不定义。
        参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、*args、默认参数、**kwargs顺序定义。
        如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序
    3.注释:函数的第一行语句应该添加注释。
    4.函数体:函数内容以冒号起始,并且缩进。
    5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None
    
    def 函数名(参数1,参数2,*args,默认参数,**kwargs):
            """注释:函数功能和参数说明"""
            函数体
            ……
            return 返回值

    函数的参数  

      定义函数的时候,我们将函数的参数名字和位置确定下来,函数的接口定义就完成了,在使用参数时,除了必选参数外,我们还可以使用默认参数、可变参数和关键字参数,是函数可以处理各种传入的数据。

      一、位置参数

       1.通过位置进行传参

    1 def mymax(x, y):
    2     the_max = x if x > y else y
    3     return the_max
    4 
    5 m = mymax(10,20)
    6 print(m)

      2.按照关键字传参

    1 def mymax(x, y):
    2     the_max = x if x > y else y
    3     return the_max
    4 
    5 m = mymax(y=20, x=10)
    6 print(m)

      3.未知参数和关键字参数混用

      *** 未知参数必须在关键字参数前面

      *** 一个形参只能赋值一次

    1 def mymax(x, y):
    2     the_max = x if x > y else y
    3     return the_max
    4 
    5 m = mymax(10, y=20)
    6 print(m)

      二、默认参数

      ***** 注意!

    1 def defult_param(a,l = []):
    2     l.append(a)
    3     print(l)
    4 
    5 defult_param('alex')
    6 defult_param('egon')

    ['alex']
    ['alex', 'egon']

      三、动态参数

      1.按位置的动态传参  *args

    1 def mysum(*args):
    2     the_sum = 0
    3     for i in args:
    4         the_sum+=i
    5     return the_sum
    6 
    7 the_sum = mysum(1,2,3,4)
    8 print(the_sum)

      2.按关键字的动态传参  **kwargs

    1 def stu_info(**kwargs):
    2     print(kwargs)
    3     print(kwargs['name'], kwargs['sex'])
    4 
    5 stu_info(name = 'alex',sex = 'male')

     四 、动态参数的聚合与打散

      在形参前的*表示吧接收到的位置参数聚合成一个元组,**表示把接收到的关键字参数聚合成一个字典,而在实参前*表示把字符串、列表、元组等可迭代对象打散,**表示把字典打散。

  • 相关阅读:
    從 IC流程中探索數位工程師的風格--III
    從 IC流程中探索數位工程師的風格--II
    從 IC流程中探索數位工程師的風格--I
    producer and consumer concept ( II )
    producer and consumer concept ( I )
    是否long pulse 訊號一定要拿來做同步處理?不做同步處理可以嗎?
    module介面訊號的收斂與發散的思考
    恐龍版OS裏的哲學家問題的思考
    git创建与合并分支
    把CentOS启动进度条替换为详细信息
  • 原文地址:https://www.cnblogs.com/heshike/p/9451531.html
Copyright © 2020-2023  润新知