Python函数浅析

325 阅读5分钟

这是我参与更文挑战的第 12 天,活动详情查看: 更文挑战

我们在前面学习完了,数据类型、流程控制语句,这时候我们要把这些分散的代码把她门封装起来,需要的时候随时可以使用它们。

这时候就有了“函数”这个概念,话不多说,我们今天就来学习函数吧~

1.函数简介

1.1 什么是函数

函数(Function)是可重复用的程序代码块。

函数的作用,不仅可以实现代码的复用,更能实现代码的一致性。

一致性指的是,只要修改函数的代码,则所有调用概函数的地方都能得到体现。

在编写函数时,函数体中的代码写法和我们前面讲述的基本一致,只对代码实现封装,并增加了函数的调用、传参、返回计算结果等内容。

因此,我们就明白函数具有以下特点

  • 函数就是Python程序的重要组成单元,代表一个功能或者任务
  • 一个python程序可以由多个函数组成
  • 函数是代码复用的通用机制

函数

1.2 函数分类

Python按参数可以分为不带参数函数、带参数函数

Python中函数按不同源分为四大类

序号名字案例
1内置函数str(),list(),len()等
2库函数过import语句导入库
3第三方库pipx下载安装后,import导入
4用户自定义库用户按需要自定义函数

2.函数定义与调用

2.1 函数定义

Python中,定义函数的语法如下:

def 函数名(参数列表):

   '''
   文档字符串
   '''
   函数体(若干语句)
   
   [return(返回值)]
   

函数格式

  • 函数的构成 1.def:

(1)Python执行def时,会创建一个函数对象,并绑定到函数名变量上。因此必须要以其关键字开头

2.函数名:

(1)由一个或者多个有意义的单词连缀而成。

(2)每个单词字母小写,单词与单词之前下划线分隔

3.参数列表:

(1)函数用于接收的参数。放置于圆括号内,可为空。 (2)如果多个参数,用逗号进行隔开。

4.文档字符串:

(1)使用三引号注释说明函数功能,方便后续查看

5.函数体:

(1)多条语句组成,其语句之间由严格的执行顺序的。排在函数体前面的语句总是先执行,排在函数体后面的语句总是后执行。

  1. return返回值
#定义一个函数打印出字符串每个字母”
def print_word(word):

    for i in word:
    
        print(i)
    

函数定义

2.2 函数调用

函数调用步骤

1.必须要先必须要定义函数,即先调用 def 创建函数对象

(1) 内置函数对象自动创建

(2)标准库和第三方库函数,通过import导入模块时,会执行模块中的def语句

2.传入参数

3.执行函数体

4.返回结果

# 调用 函数 print_word() 打印Judging

str = "JueJing"

print_word(str)

函数执行结果

3 函数主要构成

3.1 形参与实参

后续我们会具体了解参数的类型,本次先概述。

函数中形参及实参具体细节如下:

1.放置于圆括号内。如果多个参数,用逗号进行隔开。

2.形参不需要声明类型,也不需要指定函数返回值类型

3.无参数,也必须保留空的园括号

4.一旦在定义函数指定了参数列表,调用函数时,就必须传入对于的参数值(实参)

5.形参和实参必须要一一对应,否则程序会执行出错。

  • 函数形参

(1)是属于函数的参数,也就是函数参数列表里的参数,只能在函数里面使用。

(2)用于定义参数

  • 函数实参

(1)是我们调用函数时,参入的具体的参数。

(2)用于调用

我们来看个栗子:

# 定义一个计算阶乘的函数
def factorial(num):
    f = 1
    if num < 0:
        return None
    elif num == 0:
        return 1
    else:
        for i in range(1, num + 1):
            f = f * i
        return f


    n1 = factorial(10) # 10--就是实参
print(n1)
n2 = factorial(3) # 3 --实参
print(n2)
n3 = factorial(3,4) # 多传入一个实参,程序报错
print(n3)

形参与实参

3.2 函数注释

程序的可读性非常重要,一般建议在函数体开始的部分附上函数定义说明,这就是文档字符串,也称为函数注释。

  • 我们可以通过三个单引号或者三个双引号来实现,中间可以加入多行文字进行说明。

  • 查看可以调用help(函数名:doc)可以输出打印函数的文档字符串

# 定义一个打印*号的函数

def print_star(n):
    '''
    参数n:int
    功能:打印传入n个星号
    '''
    print("*"*n)

help(print_star) # 调用help函数查看函数字符串文档

函数注释查看

3.3 返回值

return 返回值特点:

  • 1.如果函数体中包含return语句,则结束函数执行并返回值
# 定义一个函数,return

def add(n,m):
    
    sum = n+m
    
    return sum # 返回sum值

a = add(30,40)
print(a) # 赋值给a
print(add(30,40)+20)  #直接使用返回值

截屏2021-06-12 21.41.24.png

return 结束函数体执行

def test():
    print("start")
    
    print("starting")
    
    return # 提前结束函数执行
    
    print("end")
test()

运行结果

  • 2.如果函数体中不包含return语句,则返回None值
def add(n, m):
    sum = n + m

    return  # 无返回值


a = add(30, 40)
print(a)  # 赋值给a

运行结果

  • 3.如果返回多个值,python会自动将多个返回值封装成元组
def test(x,y,z):

   return x,8*y,z

print(type(test(1,3,5)))

运行结果

4.函数内存分布

4.1 创建函数

创建函数流程步骤:

  • python中通过 def 来创建函数对象,存在堆内存中
  • 然后把地址赋给变量(函数名)存储在栈内存中
  • 等待被调用
#定义一个函数打印出字符串每个字母”
def print_word(word):

    for i in word:
    
        print(i)
    

创建函数

4.2 函数对象

Python中,一切皆是对象,实际上执行def定义函数后,系统创建来相应的函数对象。

# 调用 函数 print_word() 打印Judging

str = "JueJing"

c = print_word(str)

print(c)

调用

运行结果

总结

本期介绍来函数的基本概念,及函数内存浅析,下次我们学习函数参数相关的内容。

好啦,以上是本期内容,欢迎大佬在评论区指正。