zoukankan      html  css  js  c++  java
  • Python——函数入门(一)

    一、理解函数

      举一个例子,当我们需要重复使用一个功能的时候,不可能每次都去复制一次代码,这个时候就需要用到函数了,所谓的函数,简单来说就是给函数取一个名字,当需要用到这个功能的时候,就可以通过这个名字去执行这个函数了。

      通常函数可以接受零或者多个参数,也能返回零个或多个值,对于函数的调用者,不需要了解函数内部的实现细节,只需要给函数传入参数和接受返回值就可以了。

    函数调用如图:

      对于函数的定义者来说,需要注意以下几点:

    • 对于函数内部动态数据,应该被定义为函数的参数
    • 对于函数调用者需要得到的数据,应该被定义为返回值
    • 函数内部实现的过程

    二、函数的定义与调用

    定义函数的语法格式如下:

    def 函数名(形参列表):
        函数的内部实现过程
        [return 返回值]
    • Python必须使用def声明函数。
    • 从语法来说,函数名只要是合法的标识符即可,但从可读性来说,函数名最好是由有意义的单词组成,单词之间用下划线分隔开,每个单词都是小写字母。
    • 形式列表,由多个形参名组成,形参名之间使用英文逗号隔开,只要在定义函数的时候指定了形参列表,调用者就必须为函数传入参数值。

    例:

    # 定义函数
    def max_num(x = 1,y = 2):
        z = x if x > y else y if y > x else (x,y)
        return z
    
    def say_max(name):
      print ('函数执行中.....')
      return '最大值为:%s'%name
    
    # 调用函数
    max_num()
    # x默认值为1,y默认值为2,返回 2
    # 重新对x,y赋值
    max_num(3,2)
    # 返回 3
    
    # 把max_num返回值当做参数传入say_max
    say_max(max_num(5,7))
    # 打印 函数执行中..... 返回 '最大值为:7'
    

    在函数体中,return可以返回表达式,也可以返回一个或多个值,上面max_num()函数可以简写成:

    def max_num(x = 1,y = 2):
        return x if x > y else y if y > x else (x,y)
    

    如果程序中需要返回多个值,我们可以把多个值包装成list之后返回,也可以直接返回多个值,Python会自动的把多个返回值封装成元组tuple,例:

    # 返回多个值
    def send_num(x,y,z):
        print ('函数运行中.....')
        return x,y,z
    
    # 返回列表
    def show_num(a,b,c):
      p = a,b,c
      return list(p)
    
    send_num(1,2,3)
    # 打印 函数运行中..... 返回 (1, 2, 3)
    show_num(1,2,3)
    # 返回 [1, 2, 3]
    

    三、递归函数

    一个函数内调用自己本身,就是递归函数,递归函数包含一种隐式循环,重复去执行某一段代码,但无须循环控制。

    例:

    def sum_num(n):
        if n == 0:
            return 0
        else:
            return n + sum_num(n-1)
    
    sum_num(5)
    # 返回 15  
    

    上面的例子中,函数不断调用自己本身,当sum(0)确定时,就可以推算出sum(1),sum(1)又可以推算出sum(2).........如此类推,最后就可以推算出sum(5),过程如下:

    sum(5) = 5 + sum(4) ----------> 5 + 10 = 15
    sum(4) = 4 + sum(3) ----------> 4 + 6 = 10
    sum(3) = 3 + sum(2) ----------> 3 + 3 = 6
    sum(2) = 2 + sum(1) ----------> 2 + 1 = 3
    sum(1) = 1 + sum(0) ----------> 1 + 0 = 1
    sum(0) = 0 
    

    总的来说,当一个函数体中,调用了函数本身,就是函数递归,注意,递归一定要向已知的方向进行。 

    四、为函数提供文档

    当我们要使用一个函数时,不知道该函数是用来做什么的,我们可以通过Python内置函数help()查看该函数的帮助信息。

    我们可以在定义一个函数时,给函数添加说明文档,只需要把一段字符串放在函数声明之后,函数整体之前,这段字符串将被视为这个函数的一部分,这部分就是函数的说明文档,我们可以通过help()函数的__doc__属性访问函数的说明文档。

    定义一个函数:

    def test(n):
        '''
        这里是说明文档
        '''
        return n
    

    通过help()函数查看test()函数说明文档,例:

    help(test)
    # 运行结果
    Help on function test in module __main__:
    
    test(n)
        这里是说明文档
    

    通过函数的__doc__属性访问函数的说明文档,例:

    print (test.__doc__)
    # 运行结果
    
            这里是说明文档
    

      

  • 相关阅读:
    84. Largest Rectangle in Histogram (Solution 2)
    84. Largest Rectangle in Histogram (Solution 1)
    73. Set Matrix Zeroes
    【JavaScript】Symbol 静态方法
    【JavaScript】Date
    【JavaScript】Math
    725. Split Linked List in Parts把链表分成长度不超过1的若干部分
    791. Custom Sort String字符串保持字母一样,位置可以变
    508. Most Frequent Subtree Sum 最频繁的子树和
    762. Prime Number of Set Bits in Binary Representation二进制中有质数个1的数量
  • 原文地址:https://www.cnblogs.com/mingmingming/p/11072371.html
Copyright © 2011-2022 走看看