zoukankan      html  css  js  c++  java
  • 函数和常用模块【day04】:函数介绍(一)

    本节内容

    1、函数介绍

    2、函数定义

    3、为什么要使用函数

    一、介绍  

    在我们以往的学习编程的过程当中,碰到的最多的两张编程方式或者说编程方法:面向过程和面向对象。其实不管是哪一种,其实都是编程的方法论而已。但是现在有一种更古老的编程方式:函数式编程,以它的不保存的状态,不修改变量等特性,重新进入我们的视野。

    面向对象 --->类 ---->class
    面向过程 --->过程--->def
    函数式编程-->函数--->def

    二、函数定义  

    我们上初中那会也学过函数,即:y=2x,说白了,这里面总共就两个变量x和y,x是自变量,y是因变量(因为x变而变),y是x的函数。自变量的取值范围,叫做这个函数的定义域。

      说了这么多,我们还是来讲讲,编程中的函数定义吧!!!

    1、函数定义:

    def test():
        "the funcation details"
        print("in the test funcation")
        return 0
     
    def #定义函数的关键字
    test #函数名
    () #定义形参,我这边没有定义。如果定义的话,可以写成:def test(x): 其中x就是形式参数
    "the funcation details" # 文档描述(非必要,但是强烈建议你为你的函数添加详细信息,方便别人阅读)
    print #泛指代码块或者程序逻辑处理
    return #定义返回值

    2、过程定义:

    #定义过程
    def test_2():
        "the funcation details"
        print("in the test funcation")

    3、两者比较:

    #定义函数
    def test_1():
        "the funcation details"
        print("in the test funcation")
        return 0
     
    #定义过程
    def test_2():
        "the funcation details"
        print("in the test funcation")
     
    a = test_1()
    b = test_2()
    print(a)
    print(b)
     
    #输出
    in the test funcation
    in the test funcation
    #输出返回值
    0
    #没有return ,返回为空
    None

    小结:不难看出,函数和过程其实在python中没有过多的界限,当有return时,则输出返回值,当没有return,则返回None

    三、使用函数原因

     至此、我们已经了解了函数,但是我们为啥要用函数啊,我觉的我们以前的那种写法挺好的呀!其实不然,我给使用函数总结 了两点好处:

    代码重复利用
    可扩展性
    保持一致性

    1、代码重复利用

      我们平时写代码的时候,最讨厌的就是写重复代码,这个无疑是增加我们的工作量,所以代码重用性是非常有必要的。下面我们就举个简单的例子吧,使用函数和不使用函数的区别。

    ①优化前

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

    那么假设有n个函数,我们是不是也要拷贝n次呐?于是,我们就诞生了下面的方法

    ②优化后

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

    2、可扩展,代码保持一致性

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

    注:如果遇到代码逻辑变了,用以前拷贝n次的方法,那什么时候拷贝完啊,而且中间有遗漏怎么办,如果用了函数,我们只需要改这个函数的逻辑即可,不用改其他任何地方。

  • 相关阅读:
    AcWing 372. 棋盘覆盖 二分图最大匹配
    LeetCode 1011. 在 D 天内送达包裹的能力 二分
    AcWing 920. 最优乘车 BFS DIJKSTRA SPFA 方法
    AcWing 903. 昂贵的聘礼 spfa dijstra
    Leetcode 209. 长度最小的子数组 双指针
    AcWing 1111. 字母 bfs dfs两份代码
    AcWing 904. 虫洞 spfa 图论
    深入学习微框架:Spring Boot
    深入学习微框架:Spring Boot
    spring boot web相关配置
  • 原文地址:https://www.cnblogs.com/luoahong/p/9889364.html
Copyright © 2011-2022 走看看