Python学习8

python学习8

函数

1. 函数的概念

如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数。

2. 函数定义和调用

定义函数
def 函数名():
    代码
#定义一个函数,能够完成打印信息的功能
def printInfo():
    print("---------------------------")
    print("-----人生苦短,我用Python-----")
    print("---------------------------")
调用函数

定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它调用函数很简单的,通过 函数名() 即可完成调用

# 定义完函数后,函数是不会自动执行的,需要调用它才可以
printInfo()

3. 函数参数

定义带有参数的函数
def add2num(a,b):
    c = a + b
    print(c)
调用带有参数的函数

以调用上面的add2num(a,b)函数为例:

def add2num(a,b):   #在"函数定义"的时候,a,b称为"形式参数"
    c = a + b
    print(c)
                    #在"函数调用"的时候,110和22称为"实际参数"
add2num(110,22)     #调用带有参数的函数时,需要在小括号中,传递数据

调用带有参数函数的运行过程:
请添加图片描述
函数作为一个程序块,也会遵循一个规律:
输入->处理->输出 (中间的运算数值,存储在内存中)
函数定义的格式:

def   函数名(形式参数):						#形式参数,是代码段中临时定义的变量,指代“输入进来的数值”
	  函数体(具体的功能特性代码)
	  return  返回值						    #返回值,是代码段执行后,返回到函数调用处的“输出结果”

函数调用的格式:

变量名 = 函数名(实际参数)     #变量名 所指向的最终结果是函数执行后返回的“输出结果”

4. 函数返回值

带有返回值的函数

想要在函数中把结果返回给调用者,需要在函数中使用return

def add2num(a,b):
    c = a + b
    return c
#或者
def add2num(a,b):
    return a + b
保存函数的返回值

如果一个函数返回了一个数据,那么想要用这个数据,那么就需要保存
保存函数的返回值如下:

#定义函数
def add2num(a,b):
    return a+b

#调用函数,顺便保存函数的返回值
result = add2num(20,30)

#因为result已经保存了add2num的返回值,所以接下来就可以使用了
print(result)   #50
"返回"即"结束"return所在的函数

return"返回"了结果;return结束了函数的执行

def subtraction(a,b):
    if a < b:
        print("a<b")
        return b-a  #返回调用自身函数的地方
    print("a>=b")   #如果上面执行了return语句,后面的代码将不再执行
    return a-b

print(subtraction(-3,5))
print(subtraction(5,-3))
函数"调用"的嵌套
def add2Num(a,b):
    return a+b

def add3Num(a,b,c):
    return add2Num(add2Num(a,b),c)  #可以直接将add2Num(a,b)返回的结果作为另一个函数的实参

print(add3Num(10,20,30))    #60

5. 局部变量和全局变量

局部变量

什么是局部变量
在这里插入图片描述
小结:

  • 局部变量,就是在函数内部定义的变量
  • 不同的函数,可以定义相同的名字的局部变量,但是自己用自己的不会产生影响
  • 局部变量的作用,为了临时保存数据需要在函数中定义变量来进行存储,这就是它的作用
全局变量

什么是全局变量
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是 全局变量

#定义全局变量
a = 100

def test1():
    print(a)

def test2():
    print(a)

#调用函数
test1()
test2()

全局变量和局部变量名字相同问题
在这里插入图片描述
修改全局变量
既然全局变量,就是能够在所以的函数中进行使用,那么可否进行修改
在这里插入图片描述
总结:

  • 在函数外边定义的变量叫做 全局变量
  • 全局变量能够在所有的函数中进行访问
  • 如果在函数中修改全局变量,那么就需要使用 global 进行声明,否则出错
  • 如果全局变量的名字和局部变量的名字相同,那么使用的是局部变量的

6. 函数使用注意事项

自定义函数
  1. 无参数、无返回值
def 函数名():
	语句
  1. 无参数、有返回值
def 函数名():
	语句
	return 需要返回的数值

注意:

  • 一个函数到底有没有返回值,就看有没有return,因为只有return才可以返回数据
  • 在开发中往往根据需求来设计函数需不需要返回值
  • 函数中,可以有多个return语句,但是只要执行到一个return语句,那么就意味着这个函数的调用完成
  1. 有参数、无返回值
def 函数名(形参列表):
	语句

注意:

  • 在调用函数时,如果需要把一些数据一起传递过去,被调用函数就需要用参数来接收
  • 参数列表中变量的个数根据实际传递的数据的多少来确定
  1. 有参数、有返回值
def 函数名(形参列表):
	语句
	return 需要返回的数值
  1. 函数名不能重复
调用函数
  1. 调用的方式为
函数名([实参列表])
  1. 调用时,到底写不写实参
  • 如果调用的函数 在定义时有形参,那么在调用的时候就应该传递参数、
  1. 调用时,实参的个数和先后顺序应该和定义函数中要求的一致
  2. 如果调用的函数有返回值,那么就可以用一个变量来进行保存这个值
作用域
  1. 在一个函数中定义的变量,只能在本函数中用(局部变量)
  2. 在函数外定义的变量,可以在所有的函数中使用(全局变量)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值