Python 函数

函数及其调用 

什么是函数 

  • 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
  • 函数能提高应用的模块性,和代码的重复利用率。 

print()hex() 这些都是函数

函数的调用非常简单,只要函数名(参数)

这里要注意一点:参数一定要符合函数定义时的入参,对于Python中提供的函数,可以使用help(函数)来查看相关调用时的相关说明,如help(hex)

Python中,万物皆对象,也就意味着函数名也是指向一个函数对象的引用,我们可以把函数名赋给一个变量,相当于给这个函数起了一个别名 

p = print
p(123)

自定义函数 

定义函数的基本结构 

def 函数名(入参):
    函数逻辑
    return

自定义一个求原型面积的函数

PI = 3.14

def circle_area(r):
    return PI * r **2

print(circle_area(2))

自定义空函数

def empty_fun():
    pass

print(empty_fun())

让函数返回多个值

#直接在函数里把多个返回值按一定顺序放到list、tuple里
def my_fun():
    return [1, 2, 3]

#多个返回值以key-value的形式放在字典(dict)里
def my_fun():
    return {"x": 1, "y": 2, "z": 3}

#在return 的时候直接返回多个逗号分隔的值,在返回的时候,也可以直接用多个变量接收
def my_fun():
    return val1, val2, val3

x, y, z = my_fun()

核心注意点:返回多个参数时,如果想一次性用多个变量接收,那么有多少个返回值就得有多少个变量接收。

其实返回多个值 ,本质上返回的是一个元组

def my_fun():
    return 1, 2, 3

print(type(my_fun()))

递归 

使用递归,做阶乘运算 

def factorial(n):
    if n == 1:
        return 1
    else:
        return n * factorial(n-1)

print(factorial(5))

使用递归实现求斐波那契数列第n项的值

def feb(n):
    if n < 3:
        return 1
    else:
        return feb(n - 1) + feb(n - 2)

print(feb(6))

python 中有最大的递归层级,可使用如下代码获取最大层级

import sys

print(sys.getrecursionlimit())

输出结果:1000