欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Python学习之路-----函数

程序员文章站 2024-02-24 14:38:58
...

基本概念

  • 函数就是具有独立功能的代码块,Python中的代码块使用Tab来区分,同一个缩进的是同一个代码块。
  • 函数使用的两个步骤:

  1.         定义函数:编写实现代码的部分;
  2.         调用函数:执行已经写好的代码块

  • 函数的作用:在开发过程中大量使用函数来提高效率实现代码的重用。

定义格式

def 函数名():

    代码的实现部分

# 定义函数
def func():
    print("hello world in func!")
#调用函数
func()

函数执行过程

第一步:函数的定义先载入内存;

第二步:调用函数时先查看内存中是否有此函数符号,若存在便执行;

函数的文档注释

在使用Pycharm开发的时候,系统内置的函数如print(),可以将鼠标放到该函数上,ctrl+q查看注释。

我们自己实现的函数同样可以添加注释。在函数体第一行"""函数注释""",如:

# 定义函数
def func():
    """这是函数注释"""
    print("hello world in func!")
#调用函数
func()

函数参数

  • 在函数定义的时候写入的参数叫形参,形参的作用是占位,具体的值是由实参决定的。
  • 在函数执行的时候写入的函数叫实参
  • 由于实参的值是在实际调用的时候才决定的,所以带参数的函数总能实现一些更强大的功能。试想如果一个函数的作用是实现两个数的和,我们只要随便决定实参的值就能实现任意两个数的和,这无疑是一个强大的功能。
  • 在函数调用的时候传入的实参要与函数定义的个数一样,系统会按位置依次赋值
def sum(a,b):
    """任意两个数相加"""
    print("a=%d b=%d" % (a,b))
    print(a+b)
sum(1,1) # 2
sum(1,2) # 3
sum(2,3) # 5

形参的作用域

形参只能出现在函数内部;

def func1(a):
    print(a)
func1(123)

print(a) # 出错

如果形参与函数外的已有参数同名,那么在函数内部形参是由实参决定的。

a = 10
print("函数定义之前 a=%d" % a)

def func1(a):
    print("函数体中:%d" % a)

func1(123)
print("函数执行之后 a=%d" % a)
结果:
函数定义之前 a=10
函数体中:123
函数执行之后 a=10

函数的返回值

在函数中使用return返回一个自己认为有意义的值,这样在函数外就可以获得函数的执行结果。

def sum(a,b):
    return a+b #使用return返回结果

result = sum(1,1)
print(result) # 2

  • 函数在执行return之后函数便结束,因此若return之后还有函数代码,便不执行;
  • 当return返回多个值的时候,返回的就是元组;
  • 函数内部可以写多个return语句,但是函数最后只会执行其中一个return;


局部变量

  • 在函数内部叫做局部变量,它的作用域是只能在该函数内部。
  • 在函数内部给变量赋值默认都是定义一个局部变量。
  • 局部变量在函数执行完之后就销毁了

全局变量

  • 在函数外定义的变量是全局变量,全局变量在整个程序文件定义的那一行之后都生效
  • 全局变量在程序执行完成之后才销毁
  • 如果在函数内部修改全局变量,需要使用global关键字
a = 10 
print("函数执行前,全局变量a=%d" % a) # 函数执行前,全局变量a=10
def func():
    global a
    a = 100

func()
print("函数执行完:a=%d" % a) # 函数执行完:a=100
全局变量尽量不要与局部变量、形参等同名!

默认参数

  • 形参可以赋一个默认的值,当实参有值时按实参实际的值运算,当没有对应的实参时,按照形参的默认值运算;
  • 默认参数必须放在普通参数右边
def fun(a,b=10):
    return a+b

print(fun(1,1)) # 2
print(fun(1)) # 11

关键字参数(指的是实参的位置)

当函数定义时有多个默认值,可以在函数调用的时候给指定的形参赋值;

def fun(a=5,b=10):
    print(a)  # 5
    print(b)  # 50

fun(b=50)

可变参数

定义函数时在形参前加*,表示该参数为可变形参,可以接收任意个值;

传入的参数被包装成元组;

def func(*args):
    print(args) # (1, 2, 3, 4, 5, 6, 7, 8, 9)

func(1,2,3,4,5,6,7,8,9)


相关标签: Python