Python_base2018119_function

什么是函数?
函数-function,功能。 在我20172018的授课(高中数学物理)生涯中,我经常告诉学生,别把函数想的太难了,函数其实就是一个黑盒子。你给它丢进去一个值,他能给你返回一个唯一确定的值。这个东西就叫函数。
编程语言中的函数有什么用?
用处大了去了。首先,你想写一段代码实现一个复杂的数学函数。

'''
巴拉巴拉巴拉巴拉
'''

你会发现,改变x的值时,你需要重新写一遍,特别冗余,而且代码结构特别的烂,会打断你的思路的。写着写着代码你会发现,咦???我写这个的目的是什么???
如果用函数的话,你可以这么写:

def chaifenjuzhen():
pass
def hebingjuzhen():
pass

你的任务就会简单明了。可以把一个复杂的问题转换成几个小问题,然后定义好接口就可以啦!
又比如:

while True:
    if cpu利用率 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
     
    if 硬盘使用空间 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接
     
    if 内存占用 > 80%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

这样代码会特别的冗余。
如果写成:

def 发送邮件(内容)
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接
     
while True:
     
    if cpu利用率 > 90%:
        发送邮件('CPU报警')
     
    if 硬盘使用空间 > 90%:
        发送邮件('硬盘报警')
     
    if 内存占用 > 80%:
        发送邮件('内存报警')

就完美了。
所以,函数真的特别有用!
总结函数的好处:

  1. 代码重用
  2. 易维护
  3. 可扩展性强

函数的定义:

python中函数定义方法:

def test(x):
    "The function definitions"
    x += 1
    return x


def :定义函数的关键字


test:函数名
():内可定义形参
"": 文档描述(非必要,但是强烈建议为你的函数添加描述信息)
x += 1:泛指代码块或程序处理逻辑
return:定义返回值

调用运行:可以带参数也可以不带
函数名()

函数调用:

是test()而不是test   test是函数的内存地址。

python中的函数不可重载!!
函数的返回值(return)总结:

返回值数=0:返回None
返回值数=1:返回obj
返回值数>1:返回tuple

函数值能执行一个return语句,可以写多个return 但是只会执行一个。执行完return函数就结束了。

形式参数:调用时分配内存,调用结束时释放内存。即传值时形参才被分配了内存空间。
传参时,位置参数必须一一对应(不能多也不能少),关键字参数也得一一对应,但是关键字参数不用管顺序,因为有关键字标识。
✳重点:
位置参数和关键字参数只是函数调用时传参的两种形式,跟函数定义时形参是否指定了默认值无关。
传参时,如果混合使用位置参数和关键字参数,则位置参数应在关键字参数的左边。
对某一形参值能传1次实参。

默认参数:
定义时指定一个默认值,而且默认参数要在普通参数的右边。
可变参数:
*args**kwargs
*args可以接收任意个(包括0个)位置参数。把这些位置参数包装成args元组。
**kwargs可以接收任意个(包括0个)关键字参数。把这些关键字参数包装成kwargs字典。

注意,传参时,*iterable会把iterable拆成位置参数,**字典会把字典拆成关键字参数。
一定要注意,***和传值没有关系,他们的任务仅仅是把iterable或字典转换成位置参数或关键字参数。

✳总结大原则:
传参时关键字参数在右。
定义时形参顺序为:普通形参-默认形参-*args-**kwargs

猜你喜欢

转载自blog.csdn.net/weixin_41687289/article/details/83894579