Python教程

3. Python 函数

本文主要是介绍3. Python 函数,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

知识要点

3.1 函数的简介

3.2 函数的定义和调用

3.3 函数的参数

3.4 函数的返回值

3.5 递归函数

3.6 局部变量和全局变量

3.7 捕获异常

3.1 函数的简介

函数:将需要多次使用的代码块组织为一个小模块,叫做函数。

函数的作用:可以提高编写的效率以及代码的重用。

3.2 函数的定义和调用

函数必须先定义,在调用。

定义函数的格式

def 函数名():
    代码块

调用函数的格式

函数名()
# 调用函数时,函数从头执行,代码执行完毕,调用结束
# 若函数中有 return 语句,执行到 return 语句时,调用结束

函数的文档说明

# help(函数名) 能够看到函数的相关说明
help(input)
# 函数名.__doc__ 直接查看文档说明
print(input.__doc__)

3.3 函数的参数

位置参数

位置参数:也叫做必选参数。

#  eg:在 power(x,n) 函数中的 x,n 都是位置参数
#  调用时,5、2 分别赋值给 x,n
def power(x, n):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
power(5, 2)

默认参数

默认参数:将某个未知参数值设定,降低函数调用的难度。

 

#  调用power(5)时,相当于调用power(5,2)
def power(x, n=2):
    s = 1
    while n > 0:
        n = n - 1
        s = s * x
    return s
power(5)
'''
    必选参数在前,默认参数在后,否则会报错
    当有多个参数时,变化小的参数放后面作为默认参数
'''

可变参数

可变参数:即传入的参数个数时可变的。

可变参数的格式:在参数前面加一个 * 号

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum
calc(5, 2)

参数组合

参数组合:必选参数、默认参数、可变参数 3 种参数组合使用。

参数组合顺序:必选参数、默认参数、可选参数。

def fun1(a, b, c=0, *args):
    print('a = ', a, 'b = ', b, 'c = ', c, 'args = ', args)
fun1(5, 2)
fun1(5, 2, c=3)
fun1(5, 2, 3, 'a', 'b')

3.4 函数的返回值

返回值:即程序中函数完成一件事情后,最后给调用者的结果。

带有返回值的函数:若要将函数结果返回,需要使用return。

# 定义函数
def cal(a, b):
    return a+b
# 调用函数,顺便保存函数的返回值。
result = cal(100, 98)
# result 已经保存了 cal 的返回值,可以直接使用了。
print(reesult)

多个返回值

def cal_nums():
    print("---1---")
    return 1
    # 以下的代码不会被执行,因为return除了能够将数据返回之外,还有一个隐藏的功能:结束函数
    print("---2---")
    return 2
    print("---3---")
# return 后面可以是元组,列表、字典等,只要是能够存储多个数据的类型,就可以一次性返回多个数据。若 return 后面有多个数据,那么默认是元组。
def my_function():
    return {"num1": 1, "num2": 2, "num3": 3}

3.5 递归函数

递归函数:即函数在内部调用自身本身。

优点:定义简单,逻辑清晰。

缺点:过深的调用会导致栈溢出

def fact(n):
    if n == 1:
        return 1
    return n * fact( n - 1)
'''
    可通过尾递归防止栈溢出。尾递归事实上和循环时等价的,没有循环语句的编程语言只能通过尾递归实现循环。
Python 标准的解释器没有针对尾递归做优化,任何递归 函数都存在栈溢出的问题。
'''
# 尾递归
def fact(n):
    return fact_iter(n, 1)
def fact_iter(num, product):
    if num == 1:
        return product
    return fact_iter(num - 1, num * product)

查看解释器能够计算的最大的阶乘

import sys
max_get = sys.getrecursionlimit()
print(max_get)

3.6 局部变量和全局变量

全局变量

全局变量:在函数外边定义的变量

作用范围:能够在所有的函数中进行访问

局部变量

局部变量:在函数内部定义的变量

作用范围:只能够在函数内部使用

3.7 捕获异常

捕获异常语句

语句 图形表示
try/except  
 try/except...else  
 try/fimally  
这篇关于3. Python 函数的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!