zoukankan      html  css  js  c++  java
  • 函数基础之定义、使用、分类

    函数

    1.什么是函数

    函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。

     2.为什么用函数

        2.1 代码的组织结构不清晰,可读性差

    2.2 遇到重复的功能只能重复编写实现代码,代码冗余

    2.3 功能需要扩展时,需要找出所有实现该功能的地方修改之,无法统一管理且维护难度极大

    使用函数能够解决上述问题

    3.怎么使用函数(先定义后使用)

    3.1 定义函数

    定义一个函数包括4部分:

    1.函数名:是使用该函数的依据

    2.函数体:完成功能的代码块

    3.返回值:功能完成的反馈结果

    4.参数:完成功能需要的条件信息

     

    定义函数的语法(def关键词来声明函数):

            def 函数名(参数1,参数2,参数3,...):

              ''注释'''

              函数体

              return 返回的值

    3.2 使用函数
    函数的调用:函数名加括号(先找到名字,根据名字调用代码)

      函数名:拿到函数的地址

      **函数名(): 拿到函数的地址,并执行函数中存放的代码块(函数体)

      函数名(参数):执行函数并传入参数

      函数名(): 执行完毕后,会得到函数的返回值,返回值就跟普通变量一样,可以直接打印、使用、运算

    3.3 函数执行的本质:
      执行函数体,得到函数返回值

    4.函数的分类

    4.1 根据参数列表分

    无参函数:不需要外界资源

                        def start():
                           print('系统启动')
                       start()
    • 有参函数:需要外键资源

                        def login(usr, pwd):
                           if usr == 'owen' and pwd == '123':
                               print('登录通过')
                           else:
                               print('登录失败')

                        login('owen', '123')
    4.2 根据返回值划分:return是用来结束函数的

            空返回:返回None

                         def demo(x, y):
      print( x + y )
       
    def demo(x, y):
      print( x + y )
      return  # 用来结束函数(像break结束循环一样)

            一值返回

                          def demo(x, y):
                             return x + y

            多值返回

                          def demo(x, y):
           # 本质就是返回装有多个值的元组
       return x + y, x - y, x * y, x / y

    5.函数的嵌套调用

               函数的嵌套调用:在一个函数体重调用另一个函数
       
      # 在解释过程中,不执行函数体,在函数被调用时,函数体才被执行
                       def fn1():
                           print('fn1 run')
                           fn2()

                       def fn2():
                           print('fn2 run')
                           fn3()

                       def fn3():
                           print('fn3 run')

    # 注:在fn1中调用了fn2,所以调用fn1的逻辑应该在fn2定义之后
    fn1()
       
       
      案例:取出最大数
                       # 求两个数最大值
                       def max_2(n1, n2):
                           if n1 > n2:
                               return n1
                           return n2

                       # 求三个
                       def max_3(n1, n2, n3):
                           m2 = max_2(n1, n2)
                           return max_2(m2, n3)

                       # 求四个
                       def max_4(n1, n2, n3, n4):
                           m2 = max_2(n1, n2)
                           return max_3(m2, n3, n4)

                       # 循环调用:在一个函数的内部调用另一个函数

     

  • 相关阅读:
    netty系列之:基于流的数据传输
    netty系列之:中国加油
    netty系列之:Event、Handler和Pipeline
    netty系列之:netty中的Channel详解
    netty系列之:netty架构概述
    Python 列表解析式竟然支持异步?
    Python 数值中的下划线是怎么回事?
    Nginx+keepalived 双机主从模式下修改主Nginx自动同步nginx.conf配置文件至备Nginx
    Oracle nvarchar2存储特殊字符乱码问题
    Oracle 11.2.0.4.0版本下大表添加默认值字段影响因素
  • 原文地址:https://www.cnblogs.com/yuanlianghong/p/10615005.html
Copyright © 2011-2022 走看看