python中自定义函数的使用、全局变量和局部变量的概念、global和nonlocal的使用方法

本文介绍了Python中的函数概念,包括系统函数和自定义函数,详细讲解了自定义函数的定义、位置参数、关键字参数、形参默认值、不定长参数的使用。此外,还阐述了return关键字的作用,以及全局变量和局部变量的区别。最后,提到了`global`和`nonlocal`关键字在管理变量中的应用,以及匿名函数(lambda函数)的定义和使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

函数

函数的概念:

函数就是实现某一特定功能的代码的封装。
函数的分类
系统函数:系统已经定义好的函数,程序根据需求直接使用
自定函数:程序员自己定义的函数。(自己造的机器)
自定函数语法:
def 函数名(形参列表):

​ (函数说明文档:
​ 函数功能说明
​ 参数说明
​ 返回值说明) #相当于机器的说明书

​ 函数体
位置参数和关键字参数

  • 位置参数 ----调用函数的时候直接在括号里面写多个实参,实参和形参是一一对应的
  • 关键字参数----调用函数的时候以 形参名=实参 的形式来确定实参(位置不影响结果)
    关键字不能重复且不能少
    ps:位置参数和关键字参数可以一起使用,但是位置参数必须在关键字参数前面
    不管以什么样的形式传参,最终都要保证每个参数都有值

例:

def fun1(a,b):
    print(f'a:{a},b:{b}')
fun1(10,20)
fun1(a=10,b=20)

形参默认值

  • 定义函数的时候,可以给形参赋默认值;如果形参有默认值,那么这个参数在调用的时候可以不用传参。
  • 如果定义函数的时候有的参数有默认值,有的参数没有默认值,没有默认值的放前面,有默认值的放后面

例:

def fun1(b=20):
	pass

不定长参数(参数个数不确定)
1)定义函数的时候在一个参数前加*,那么这个参数就是一个不定长参数,可以同时接收多个参数(以元组的形式保存)
注意: a.带*的参数的本质就是一个元组;
b.在调用的时候这个参数必须使用位置参数传参
2)定义函数的时候在一个参数前加 * * ,那么这个参数就是不定长参数,可以同时接收多个参数(以字典的形式保存)
dun1(*x,**y) 两种不定长参数一起用,最终还是实现一个参数不定的函数,只是在调用的时候更加灵活,既可以用位置参数传参也可以用关键字参数传参,还可以位置参数和关键字参数一起用

return关键字
return 只能在函数体中使用的关键字,作用有两个:

  1. 确定函数返回值(return是什么,函数的返回值就是什么)
  2. 提前结束函数(只有遇到return,整个函数直接结束)
  • 如果在执行函数的时候没有遇到return,那么函数返回值是None
    全局变量
    定义在函数和类的外部的变量就是全局变量。
    作用域:从定义开始到文件结束的任何位置都能使用
    局部变量
    定义在函数中的变量就是局部变量
    作用域:从定义开始到函数结束的任何位置都能使用
    例:
#x是全局变量
for x in range(4):
    # y是全局变量
    y=10
    pass
# x,y是局部变量
def fun1(x,y):
    pass

global和nonlocal
global和nonlocal只能在函数体中使用。
global:用global在函数里面定义一个全局变量,用global声明的变量只能在声明之后使用
nonlocal:定义局部的局部变量
例:

dict1={'num':123,'money':100}
def cun(x):
    # global dict1
    dict1['money']+=x

匿名函数
匿名函数的本质还是函数,除了定义的语法以外,其他的和普通函数没有区别

语法:
函数名=lambad 参数列表 :返回值
例:

sum1=lambda a,b:a+b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值