美文网首页
第三章 过程大于结果

第三章 过程大于结果

作者: Echo_f0a1 | 来源:发表于2019-11-04 11:51 被阅读0次

    3.1 懒人炒菜机

    1.函数是什么

    集合的对应关系、数据的魔法盒子、 语句的封装

    2.定义函数

    def   函数名(参数)              #命名定义的函数,并赋予形参

             statement                         #执行下列语句

             return (参数)               #返回函数结果,可以同时返回多个值,函数结束

    3.调用函数

    1.给定实参 2.直接调用

    a=5

    b=6 

    x=square_sum(a, b) 

    print(x)                                              # 结果为61

    4.函数文档

    即说明文档。

    def    square_sum(a,b): 

             """return the square sum of two arguments""" 

            a = a**2

            b = b**2

            c = a + b 

            return c

    在函数内容一开始的时候,增加了一个多行注释。这个多行注释同样有缩进。 它将成为该函数的说明文档。

    如何调用:

    help(square_sum)

    3.2参数传递

    1.基本传参

    (1)位置对应

    def   print_arguments(a, b, c): 

            """print arguments according to their sequence""" 

            print(a, b, c) 

            print_arguments(1, 3, 5)                     # 打印1、3、5 

            print_arguments(5, 3, 1)                     # 打印5、3、1

            print_arguments(3, 5, 1)                     # 打印3、5、1

    (2)关键字对应

    print_arguments(c=5,b=3,a=1)                  # 打印1、3、5

    2.包裹传参

    1.元组包裹

    def   package_position(*all_arguments): 

    print(type(all_arguments))

    print(all_arguments)

    package_position(1,4,6)

    package_position(5,6,7,1,2,3)

    为了提醒Python参数all_arguments是包裹位置传递所用的元组名,我们在定义 package_position()时要在元组名all_arguments前加*号

    2.字典包裹

    def   package_keyword(**all_arguments):

    print(type(all_arguments)) 

    print(all_arguments) 

    package_keyword(a=1,b=9)

    package_keyword(m=2,n=1,c=11)

    为了提醒,参数all_arguments是包裹关键字传递所用的字典,因此在 all_arguments前加**

    3.解包裹

    unpackage:把元组和字典拆分成一个个元素

    3.3递归

    在一个函数定义中调用这个函数自身。

    为了不陷入死循环要设定一个程序能达到的终止条件。

    3.3.2 函数栈

    显著特征:先进后出

    程序运行的过程,可以看作是一个先增长栈后消灭栈的过程。每次函数 调用,都伴随着一个帧入栈。如果函数内部还有函数调用,那么又会多一个帧入 栈。当函数返回时,相应的帧会出栈。等到程序的最后,栈清空,程序就完成了。

    3.3.3 变量的作用域

    python寻找变量的范围为当前帧+“主程序”中的定义,当在函数定义内部时,优先调用内部的定义。

    函数的参数与函数内部变量类似。我们可以把参数理解为函数内部的变量。在函数调用时,会把数据赋值给这些变量。等到函数返回时,这些参数相关的变量会被清空。

    3.4 引入那把宝剑

    3.4.1 引入模块

    在Python中,一个.py文件就构成一个模块。通过模块,你可以调用其他文件中的函数。而引入(import)模块, 就是为了在新的程序中重复利用已有的Python程序。Python通过模块,让你可以调用其他文件中的函数。

    from 文件名 import 元素/定义

    3.4.2 搜索路径

    (1)python安装目录

    (2)标准库的安装路径

    (3)操作系统环境变量PYTHONPATH所包含的路径。

    3.5异常处理

    3.5.1 恼人的BUG

    bug:程序缺陷,包含语法错误(无法执行)和语义错误(错误执行)

    3.5.2 Debug

    在程序内部插入简单的print()函数,就可以查看变 量的状态以及运行进度。有时,还可以将某个指令替换成其他形式,看看程序结果 有何变化,从而验证自己的假设。当其他可能性都排除了,那么剩下的就是导致错误的真正的原因。

    测试驱动开发:适用于python

    利用PyCharm的Debug功能

    3.5.3异常处理

    (1)在程序中止之前进行更多的操作,如提供错误信息

    (2)在程序犯错后依然能运行下去。

    相关文章

      网友评论

          本文标题:第三章 过程大于结果

          本文链接:https://www.haomeiwen.com/subject/dnylbctx.html