美文网首页
一阶段day9-02函数

一阶段day9-02函数

作者: ATM_shark | 来源:发表于2018-10-10 16:56 被阅读0次

    一、函数

    1、函数定义

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
    分类:自定义函数(程序员自己声明实现其功能)和内置函数(系统已经声明实现完成)

    2、函数语法

    def 函数名(参数列表):
    函数体

    说明:
    a、def——》Python中声明函数的关键字;
    b、函数名——》标识符,要求同变量名,不能是关键字;
    遵守PEP8命名规范(所有字母小写,单词之间下划线隔开)
    见名知义(看见名字知道函数的功能)
    c、()——》固定格式
    d、参数列表——》形参列表;参数名1,参数名2,.....(逗号隔开)
    可以有多个参数,亦可以没有;
    参数是用来从函数的外部给函数里面传值用的;
    e:——》固定格式
    f:函数体——》实现函数功能的代码段;

    3、初学者声明函数的步骤

    a、确定函数的功能
    b、根据功能确定函数名
    c、确定参数:确定参数有无,参数个数(看函数功能需不需要从函数外面传值,需要传几个)
    d、实现函数功能
    e、确定返回值

    写一个函数,打印两个数的和
    def sum_me(num1,num2):
    
        print(num1+num2)
    
    sum_me(11,22)
    
    写一个函数,打印5个hello
    def hello5():
    
        print("hello"*5,sep='====')
    
    hello5()
    
    打印n个hello
    def hello_n(n):
    
        print("hello"*n,sep='==')
    
    hello_n(3)
    
    练习:写一个函数,计算1+2+3+....n的和
    def sum_n(n):
    
        sum_n=0
        for x in range(1,n+1):
            sum_n += x
        print(sum_n)
    
    sum_n(40)
    

    二、函数调用

    '''声明函数的时候,不会执行函数体。函数体只有在函数调用的时候才会执行
    这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从 Python 命令提示符执行
    语法:函数名(实参列表)
    说明:
    函数名——》必须是已经声明过的函数
    ()——》固定的
    实参列表——》数据1,数据2,...;实参是用来给形参赋值的'''

    函数的调用过程(重点)

    第一步:回到函数声明的位置
    第二步:用实参给形参赋值(传参,一定要保证每个形参都有一个实参为其赋值)
    第三步:执行函数体
    第四步:返回返回值(默认None,返回给函数调用表达式)
    第五步:回到函数调用的位置(函数表达式),执行之后的代码

    三、函数参数

    1、位置参数和关键字参数

    def func1(a,b,c):
        print('a:',a,'b',b,'c',c)
    
    func1(11,22,33)#位置参数:按照实参的顺序一一给形参赋值
    func1(c=99,a=88,b=77)#关键字参数:形参1=实参1,形参2=实参2,形参3=实参3,...
    

    2、默认参数

    函数声明的时候可以给参数设置默认值,但是有默认值的参数必须放在没默认值的参数后面
    def func1(a,c,b=0):
        print('a:',a,'b',b,'c',c)  #a: 11 b 0 c 22
    
    func1(11,22)#由于形参b有默认值,故可以不写与之对应的实参
    

    3、不定长参数

    参数个数不确定的时候,可以在形参前面加*,将这个形参变成一个元祖,用来接收多个参数
    如果函数有多个形参,那么不定长参数要放在最后
    def func1(*nums):
        print(nums)
    
    func1()
    func1(1)
    func1(1,3)
    func1(1,2,'abc')
    
    def func2(name,*nums):
        print(name,nums)
    
    func2('alice',2,'abc')
    

    四、函数的返回值

    函数的返回值就是函数调用表达式的值,就是return关键字后面的表达式的值
    Python中所有的函数都有返回值,返回值默认是None
    执行函数体没有遇到return,函数的返回值就是None;遇到了return函数的返回值就是return后面的值
    函数调用表达式——》调用函数的语句——函数名(实参)
    return——》关键字,只能写在函数体中。用来返回返回值和结束函数
    情况一:没有遇到return
    def hello5():
        print("hello"*5,sep='====')
    
    print(hello5())   #这一步会执行两道命令,第一道是执行函数体,第二步是打印函数体的返回值;
    ######  故结果是
    ###### hellohellohellohellohello
    ###### None
    list=['返回值',hello5()]
    print(list)  #['返回值', None]
    
    情况二:遇到return
    执行函数时,一旦遇到return,函数就直接结束,并且把return后面的结果作为返回值
    def x():
        print('===')
        print('!!!')
        return 100
        print('///')
    x()
    #会打印===,!!!,但不会打印///,因为执行不到这段代码。
    print(x())   #返回值100
    
    注意:并不是只要函数体中有return,函数返回值就是return后面的值;要函数体在执行过程中遇到return,才返回return后面的值;
    def x():
        n=2
        if n%2:
    
            return 100
        print('///')
    print(x())   #会打印///,返回值为None,并非100,因为没遇上return
    
    如果实现函数的功能会产生新的数据,就将新的数据返回。如果不会产生新的数据就不用返回值
    写一个函数,功能是计算一个数的阶乘
    def jie_ceng(num):
    
        sum1 = 1
        for x in range(1, num+1):
            sum1 *= x
    
        return sum1
    re = jie_ceng(10)
    print(re)    #3628800
    print('===%d===' % re)   #===3628800===
    list1 = [re, re]
    print(list1)    #[3628800, 3628800]
    

    相关文章

      网友评论

          本文标题:一阶段day9-02函数

          本文链接:https://www.haomeiwen.com/subject/rlqmaftx.html