zoukankan      html  css  js  c++  java
  • 第八天:函数

    ---恢复内容开始---

    一.函数的介绍:

        1.为什么要用函数,什么是函数?

        ①组织结构不清晰,可读性差。

        ②代码冗余

        ③管理维护难度大,扩展性差。

        具备某一功能的工具就是程序中的函数。

        事先准备工具的过程就是函数的定义

        拿来就用就是函数的调用

    举个栗子:修理工要下下水道修理,事先需要准备一个工具箱,工具箱就是函数的一个定义过程,之后下到下水道需要拿相应的工具就是函数的调用。

    重点:所以函数的使用必须遵守规则:先定义,后调用。

    二.函数的基本语法

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

          '''

         文件的解释

         '''

         代码一

         代码二

         代码三

         return值

       def:定义函数的关键字

       函数名:用来调用函数的

       代码块:实现函数的功能

       return:返回函数的值

    举几个例子:

    1.1定义的阶段:

    def print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

         print_sym(sym*count)

    1.2调用函数:函数名加上括号就是在调用函数

        print_sym('#',8)

    2.定义函数的三种类型:

    2.1有参函数:参数的函数体代码用来接收外部的值

    def max2(x,y)#x=10,y=4

         if  x>y:

            print(x)

         else:

            print(y)

    2.2无参函数:函数体的代码逻辑不需要调用者的掺入的情况下,就无参

    def func():

         print('------------------------')

         print('-------soft fun-------')

         print('------------------------')

     func()

    2.3空函数体:函数体为pass

    def put()

        '''

        上传功能

       :return:

        '''

        pass

    def get()

        '''

     下载功能

       :return:

       '''

       pass

    3.调用函数:

    函数遵守的规则:先定义后使用

    注意:没有事先调用的函数就相当于直接调用一个不存在变量名

    ①定义阶段:只检测语法,不执行函数体代码

    ②调用阶段:根据函数名找到函数的内存地址,然后执行函数体代码

    ③函数名加个括号就是定义函数

    举两个例子:

    ①def foo():

         print(from  foo )

         bar()

        foo()#报错,函数名bar()没有被定义,第二步执行的时候就会报错

    ②def bar()

           print(from bar)

        def foo()

           print(from foo)

            bar()

    foo()

    ③def  foo()

             print(from foo)

             bar()

         def bar()

             print(from bar)

    foo()

    ②③本质上都是事先定义了函数名,最终函数体执行。定义不分先后

    3.1调用函数的三种形式:

    ①def func():#直接调用,无返回值

          print('from func')

       func()

    ②def  max2(x,y):#有参数调用,有返回值

            if  x>y:

            return x

            else:

           retrun y

       res= max2(10,3)

       print(res)

    ③ def max2(x.y)

           if  x>y:

          return x

            else:

           return y

    res=max2(max2(10,3),11)#可以嵌套比较返回值

    4.函数的返回值:

    什么时候有返回值?

    函数体代码运行结束后需要一个返回结果给调用者

    返回值有三种形式:

    ①没有return,返回值为None

    def func():

        pass

    res=func()

    print(res)

    ②retrun后跟一个值,返回值本身

    def func1()

       return 1

    res=func1()

    print(res)

    ③return可以用逗号分开,返回多个值,会返回一个元组给调用者

    def func2()

         return 1,2,[1,2,3]

    res=func2()

    print(res)

    注意点:1.return返回值没有类型的限制

                   2.return是函数结束的标志,函数内可以写多个return,但执行一次函数就立即结束,并把return后的值作为函数的返回值

                   例如:def func3():

                                 print(first)

                                 return 1

                                print(second)

                                 return  2

                                print(third)

                                return  3

                          res=func3()

                         print(res)

                        

    ---恢复内容结束---

  • 相关阅读:
    使用Tensorflow和MNIST识别自己手写的数字
    js 判断浏览器是否64位
    Spring动态注册bean实现动态多数据源
    springMVC 静态资源加版本号
    自定义Jquery插件——由于项目需要,对页面中过长的文本进行截取,鼠标移上去有一个title的提示,所以做了一个Jquery过长文本处理的插件
    MySQL Community Server 5.5.56 ZIP Archive 绿色解压版 window安装步骤
    【我整理的java开源项目】
    Java使用反射来获取成员变量泛型信息
    Intellij IDEA 各种乱码解决方案 posted @ 2017-06-23 15:31:06
    Django drf:cbv源码、resful规范及接口、drf使用、response源码、序列化
  • 原文地址:https://www.cnblogs.com/shengg/p/8652264.html
Copyright © 2011-2022 走看看