python函数基础

函数:对代码块和功能的封装和定义

语法

def 函数名():
	函数体

函数的返回值

执行完函数后使用return来返回结果
return的作用:
1.函数中遇到return,此函数结束,不再执行
2.给函数的调用者一个返回结果
3.函数的返回值可以有多个结果

参数:函数执行时,由外界给函数内部传递的一些信息

  • 实参:函数执行时,给函数传递的具体的值
    – 位置参数:按照位置给形参传递数据
    – 关键字参数:按照形参的名称传递数据
    – 混合参数: 注意顺序(先位置参数,后关键字参数)
  • 形参:函数声明的位置写的变量
    – 位置参数:按照从左向右的顺序编写的变量
    – 默认值参数:在声明形参时,给出一个默认值 【注意:默认参数是可变的数据类型,会被共享
    – 动态传参:调用函数给出多个参数,在形参位置上一次性被接收
    形参位置编写 * :动态接收位置参数,自动打包成元组,接收任意内容
def travel(*animal):
    print(animal)

travel("大猩猩", "猴子", "熊猫")

结果:('大猩猩', '猴子', '熊猫')

形参位置编写 ** :动态接收关键字参数,自动打包成字典

def travel(**people):
    print(people)

travel(name="周杰伦", age=18, gender="男")
结果:{'name': '周杰伦', 'age': 18, 'gender': '男'}

结论:形参混合使用时的正确顺序:位置参数,*args,默认值参数,**kwargs

补充:*和**的作用
在形参上:聚合(把位置参数聚合成元组,把关键字参数聚合成字典)
在实参上:打散(把可迭代对象转化成位置参数,把字典转换成关键字参数)

# 将列表的每一项元素当成参数传递给函数
def travel(*animal):
    print(animal)

lst = ["猴子", "大猩猩", "狮子"]
# 借助 * 来完成,将可迭代对象转换成位置参数进行传递
travel(*lst)

def travel(**animal):
    print(animal)

dic = {"name":"猴子", "age":2, "gender":"男"}
travel(**dic)
  • 函数的作用域
    globals():查看全局作用域中的内容
    locals():查看局部作用域中的内容
  • global和nonlocal
    – global关键字用来在函数或其他局部作用域中使用全局变量
    – nonlocal声明的变量不是局部变量,也不是全局变量,而是外部嵌套函数内的变量
    当出现局部中需要改变外层变量的情况,需要使用global和nonlocal

这篇博客介绍的很详细:https://blog.csdn.net/orangerfun/article/details/104467158

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值