python函数详解

发布时间:2020-12-02编辑:脚本学堂
本文介绍下,有关python函数的相关知识,深入学习下python函数的定义与用法,有需要的朋友参考下。

python_func/ target=_blank class=infotextkey>python函数

1. 概念
   -函数就是完成特定功能的一个语句组,
    这组语句可以作为一个单位使用, 并给它取一个名字.
   -可以通过函数名在程序的不同地方多次执行,
    却不需要在所有地方都重复编写这些语句.

2. 分类
 2.1 自定义函数
     - 用户自己编写的

 2.2 预定义的python函数
     - 系统自带的函数
     - 第三方编写的函数

3. 好处
   - 模块化编程
     将一个复杂的问题分解成一系列的简单的小问题,然后...
     函数是模块化的最小单位
   - 代码复用, DRY(Don't Repeat Yourself)原则

4. 定义
 4.1 语法   
   

def functionName(arg1, arg2, ...) :
        block

 4.2 举例
  4.2.1 interactive model
   

复制代码 代码示例:
>>> def say():
    ...     print "I'm a simple function!!"
    ...
    >>> say
    <function say at 0x017D6CF0>
    >>> say()
    I'm a simple function!!

  4.2.2 .py
 

复制代码 代码示例:

--------------function_1.py----------------
    # define a simple function
    def say() :
        print "hello, I'm a simple function!!!"

    # separate
    print "--" * 10

    # call function
    say()

5. 函数的参数
   - 形参
   - 实参
   - 默认参数
 
 5.1 形参 和 实参
   - 形参
     定义函数时, 小括号里定义的参数 即为 形式参数
   - 实参
     调用函数时, 小括号里传递的参数 即为 实际参数

 5.2 举例
  

复制代码 代码示例:

  # define
    # times- 形参
    def say(times) :
        while times > 0 :
            print times, "hello!"
            times -= 1

    # call
    # 3- 实参
    say(3)

 5.3 默认值
  5.3.1 语法
  

复制代码 代码示例:
- 定义
    def functionName(arg1=value1, arg2=value2) :
        statements

   - 注意
     默认参数只能是 从右到左 连续设置,
     即 任意 一个默认参数 的右边 都是 默认参数

   - 调用
 

复制代码 代码示例:
    functionName()
    functionName(value1)
    functionName(arg2=value2)

  5.3.2 举例
 

复制代码 代码示例:
   >>> def myFun(arg1="value1", arg2="value2") :
    ...     print "arg1 =", arg1
    ...     print "arg2 =", arg2
    ...
    >>> myFun()
    arg1 = value1
    arg2 = value2
    >>> myFun(1)
    arg1 = 1
    arg2 = value2
    >>> myFun(1,2)
    arg1 = 1
    arg2 = 2
    >>> myFun(arg2=2)
    arg1 = value1
    arg2 = 2

6. 变量的作用域

 6.1 什么叫 局部变量 和 全局变量 
    - 在函数中定义的变量一般只能在该函数内部使用,
      这些只能在程序的特定部分使用的变量 称之为 局部变量.
    - 在一个文件顶部定义的变量可以供该文件中的任何函数调用,
      这些可以为整个程序所使用的变量称之为全局变量.

 6.2 当 局部变量 与 全局变量 同名时
        在局部中, 局部变量会屏蔽掉全局变量.
   

复制代码 代码示例:

globalVar = "I'm a global variable!!"

    def fun_1() :
        globalVar = "globalVar changed!!"
        print globalVar

    #######################################
    fun_1()
    print globalVar     
             
------- output----
    globalVar changed!!
    I'm a global variable!!

 6.3 global 语句

  6.3.1 在局部区域 声明全局变量, 并给其赋值
   

复制代码 代码示例:

def fun_2() :
        global var
        var = "I'm a global varible declared in function!"
        print "run over!!"

    fun_2()   
    print var
------- output----
    run over!!
    I'm a global varible declared in function!

  6.3.2 在局部区域 给外部全局变量 重新赋值
   

复制代码 代码示例:

var = "I'm a global variable declared outside!!"
    def fun_3() :
        global var
        var = "change global variable in local are!"

    print "before call funcation, var =", var
    fun_3()
    print "after  call funcation, var =", var
------- output----
    before call funcation, var = I'm a global variable declared outside!!
    after  call funcation, var = change global variable in local are!

7. 函数的返回值
  - 函数被调用后 会 返回一个指定的值
  - 默认返回 None
  - return 返回值
  - 返回值可以是任意类型
  - return 执行后, 函数终止
  - 区分 返回值 和 打印
 
 举例:
   

复制代码 代码示例:

def compare(num1, num2) :
        print "#" * 5
        if num1 < num2 :
            return -1

        print "#" * 10
        if num1 > num2 :
            return 1

        print "#" * 20
        if num1 == num2 :
            return 0

    print compare(1, 2)
    print compare(2, 1)
    print compare(1, 1)