python手把手50天就业(七) 函数lambda 拆包

本文介绍了Python中的函数概念,包括函数名、参数/拆包、引用传递、变量作用域和函数返回值。详细讲解了位置参数、关键字参数、缺省参数、不定长参数以及解包的使用。此外,还探讨了局部变量和全局变量的区别,以及如何使用global关键字。文章进一步深入到高阶函数,特别是lambda表达式的应用,如map、reduce和filter函数,展示了如何简化代码并提高效率。
摘要由CSDN通过智能技术生成

工程师们大家好,配套免费视频(平时上班周末录制)

在实际生活中,一家做汽车的工厂。
要完成一个完整的汽车,需要很多步骤,比如组装发动机,组装轮胎,喷漆等等
我们可以看到,这些工厂都会把这些各种功能拆分为单独的车间,有很多好处,
比如:方便管理,避免交叉(一交叉就容易乱),易于新员工上手(你刚入行,只是面对轮胎比你面对整个车压力要小很多)...

那么在程序中其实也一样,一个系统,会包含很多的功能,我们也应该借鉴现实生活的例子,把这些功能单独的分开。

1.函数

函数:就是具有某项功能作用的代码集合。

首先定义函数:先从概念理解 下面在学习格式
函数一:{
 组装发动机(30行代码)
}
函数二:{
  组装轮胎(40行代码)
}
函数三:{
  喷漆(50行代码)
}

然后组装一个车:
调用函数一: 完成发动机
调用函数二: 完成轮胎
调用函数三: 完成喷漆
最后完整的车出厂
。。。。。。

好处:
1.重用:比如喷漆,不仅仅是可以给汽车,还有很多东西都需要喷漆,把喷漆独立出来,在其他地方使用的时候就可以直接调用函数3
(因为它是一个函数,是一个整体,你写在一起就没法单独调出来)
2.安全:如果我写在一起,你想要我喷漆的代码,因为我没有把他独立出来不得不把所有代码都给你,那么暴露越多越危险
3.可维护性强:喷漆出了问题,我找函数3 50行代码,轮胎出问题我找函数二。。。如果写在一起我面对的就是120行代码,
然后去找到出错的。肯定工作量更大,我还得区分代码
4.易上手:对新入职的员工,我让你改下喷漆的代码,你只需要看函数三,
。。。。。

在python中函数需要先定义,才能使用。如同上面,需要有函数一二三,才能去调用

格式:

def 函数名(参数):
	代码块
	代码块
	return xxx

def是关键字,固定写法
注意代码块缩进格式

1.1函数名

满足前面说的标识符规则,尽量见名知意:

1.由数字、字⺟、下划线组成
2.不能数字开头
3.不能使⽤内置关键字
4.严格区分⼤⼩写

1.2参数/拆包

函数是为了完成功能,比如上面调用函数三可以喷漆,你调用我函数三的时候应该给我一个车身,我才知道喷在哪里,

也就是调用函数的时候,需要给函数什么,这就是参。当然根据功能的不同,参数可以没有,可以有很多

没有参数的函数:

def aaa():
    print('我是一个没有参数的函数')
    print('调用我可以完成一个特定的功能')


# 调用aaa函数
aaa()

位置参数:

def aaa(name, age):
    print('我是一个有两个参数的函数')
    print(f'接收到参数name:{
     name},参数age:{
     age}')


# 调用aaa函数 根据位置会直接把张三给到name,10给到age
aaa('张三',10)

# 注意:传递和定义参数的顺序及个数必须⼀致。

关键字参数:

def aaa(name, age):
    print('我是一个有两个参数的函数')
    print(f'接收到参数name:{
     name},参数age:{
     age}')


# 调用aaa函数 如果根据参数名字来传递参数 那么久可以不用遵守位置
aaa(age=10, name='张三')  # 指定了哪个值给哪个参数

缺省参数:

def aaa(name, age=10):
    print('我是一个有两个参数的函数')
    print(f'接收到参数name:{
     name},参数age:{
     age}')


# 调用aaa函数 如果根据参数名字来传递参数 那么久可以不用遵守位置
aaa(name='张三')  # 不传递age参数 那么age就采用默认的值10

aaa(name='张三', age=5)  # 传递了参数了5 就会覆盖掉10

也可以混用:

def aaa(name, address, age=10):
    print('我是一个有两个参数的函数')
    print(f'接收到参数name:{
     name},参数age:{
     age},地址是:{
     address}')


# name采用位置匹配 第一个匹配第一个 address采用名字匹配 age采用默认值
aaa('张三', address='成都')

不定长参数:

不定⻓参数也叫可变参数。⽤于不确定调⽤的时候会传递多少个参数(不传参也可以)的场景

def aaa(*args):
    print(args)  # 传递的张三跟10 会被args装为一个元组 ('张三', 10)
    print(args[0])  # 通过元组的取值可以得到张三


aaa('张三', 10)


# 也可以混用
def bbb(name, *args):
    print(f'获得参数name:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

说重点丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值