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

基本概念

  • 函数就是具有独立功能的代码块,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)


猜你喜欢

转载自blog.csdn.net/shen_chengfeng/article/details/80641579
今日推荐