zoukankan      html  css  js  c++  java
  • Python基础之(函数初识)

    一、函数是什么?

    先举一个例子:修理工工作前需要准备好工具箱里面放好锤子,扳手,钳子等工具,然后遇到锤钉子的场景,拿来锤子用就可以,而无需临时再去制造一把锤子。

    修理工===>程序员

    具备某一功能的工具===>函数

    要想使用工具,需要事先准备好,然后拿来就用且可以重复使用

    要想用函数,需要先定义,再使用

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

    函数能提高应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,比如print(),len()等。但你也可以自己创建函数,这被叫做用户自定义函数。

    二、函数分类

    1、内置函数

    为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max()ps:我们将会在最后详细介绍常用的内置函数。

    2、自定义函数

    很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可

    三、函数的定义与调用

    #定义的语法
    def 函数名(参数1,参数2,参数3,...):
        '''注释'''
        函数体
        return 返回的值
    
    #调用
    函数名(参数)
    
    #函数调用的三种形式:
    #1 语句形式:foo()
    #2 表达式形式:3*len('hello')
    #3 当中另外一个函数的参数:range(len('hello'))
    
    #函数使用的原则:先定义,再调用

    四、函数的返回值(return)

     无return->None

     return 1个值->返回1个值

     return 逗号分隔多个值->元组

     什么时候该有返回值?

     调用函数,经过一系列的操作,最后要拿到一个明确的结果,则必须要有返回值

     通常有参函数需要有返回值,输入参数,经过计算,得到一个最终的结果

     什么时候不需要有返回值?

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

     通常无参函数不需要有返回值

     五、函数的参数

    5.1、形参与实参

      形参即变量名,实参即变量值,函数调用时,将值绑定到变量名上,函数调用结束,解除绑定

    def sq(data):  #形参
        print(data)
    ret=123
    sq(ret) #实参

    5.2、位置参数

    def sq(x,y):
        return (x+y)
    x=10
    y=20
    sq(10,20)
    
    sq(x=10,y=20)
    
    
    sq(10,y=20)
    

    5.3、默认参数 (形参在定义时就已经为其赋值)

    def fun(x,y=2):
        print(x+y)
    fun(2) #使用默认参数
    fun(2,4) #使用指定参数
    
    #默认参数需要放在参数列表最后

    5.4、动态参数(*args,**kwargs)

    def foo(*args,**kwargs):
        print( 'args=', args)
        print('kwargs=', kwargs)
    foo(1,2,3)
    foo(a=1,b=2,c=3)
    foo(1,'b','c',a=1,b='b',c='c')
    foo(*["a","b","c"],**{"a":"a","b":"b"})  #列表、字典

    ps:参数顺序(位置参数,*args,默认参数,**kwargs)

    执行结果:

  • 相关阅读:
    CSS3中新增的对文本和字体的设置
    PAT1107:Social Clusters
    Git的一些操作
    PAT1029:Median
    PAT1024:Palindromic Number
    PAT1028:List Sorting
    PAT1035: Password
    PAT1133:Splitting A Linked List
    PAT1017:Queueing at Bank
    PAT1105:Spiral Matrix
  • 原文地址:https://www.cnblogs.com/crazyjump/p/10057010.html
Copyright © 2011-2022 走看看