zoukankan      html  css  js  c++  java
  • python学习笔记——肆

    第四周

      

     

    装饰器

    本质是函数,装饰其他函数,为其他函数添加附加功能。

    原则:

    1 不能修改被装饰函数的源代码

    2 不能修改被装饰函数的调用方式

     

     

     

     

    函数就是一个变量

    相当于把函数体赋值给函数名

     

    当垃圾回收时,会在内存里清空没有被引用的值

    x=1  说明x引用了1 不会被回收

    匿名函数 没有名字 没有被引用 会被回收

     

     

    例子:一

    bar传的是内存地址,加上()就能运行

    直接传bar()相当与把返回结果传进去了

     

    例子2 没有改变bar()的调用过程

     

     

     

    函数的嵌套

      在函数里用def声明一个函数,bar函数相当于一个局部变量,外部无法调用

     

     

    高潮版

    在装饰器上加的命名参数

    会被装饰器最外层的函数获取

     

       给被装饰者bbs的参数,会被

                装饰函数内部的函数获取

     

     

     

    列表生成器,外边是[],一次性产生所有的数据                                                                                                                                                                                                       。

     

     

     

    生成器,外边是(),调用_next_,才获取。

     

    生成器。只有在调用时才会生成相对应的数据

    只记录当前的位置

    只有_next_()方法可以使用 python3

    python2 不加左右下划线next()

     

    斐波那契数列,除了第一个和第二个数外,任意一个数都可以由前两个数相加得到。

     

    中间有yield的存在,def fib不再是一个函数,而是一个生成器

    返回值 done 实际返回的是 错误信息,只有在报错的时候才会打印

    正常调用fib,只会返回一个生成器

    Yield记录了生成器的位置状态,每执行一次next操作,方法都会回到yield位置

    在实际运行中是看不到的

     

     

     

    python中的异常处理

     

     

     

     

    生产者

     

     

     

     迭代器

     

    注意的可迭代对象和迭代器的区别

     

     

    dar(引用名) 。可以看出此引用有多少方法,有next方法的才叫做迭代器

     

     

      isinstance(引用,Iterable) 判断对象是否是可迭代对象(可循环的)

     

      isinstance(引用,Iterator) 判断对象是否是可迭代器对象

     

    判断是否是迭代对象

     

     

    判断是否是迭代器对象

     

     

     

     

     

     

    迭代器的计算是惰性的,用到时再计算,

     

    For循环就是一个迭代器

     

     

    Python内置方法

     

    abc求绝对值(正负都得正)

    a=abs(-7)
    print(a)

    输出 7

     

     all判断可迭代的对象,中所有的元素是否为真(不等于0)

     

    输出
    print(all(b))

     

     

     

    any 判断可迭代的对象,有一个以上的元素 是否为真(只要有一个不是0,或者不是None(空)就返回True)

     

    输出

     

     

      ascii 把内存对象变成一个可打印的 字符串

     

    bin 把数字转成2进制

     

    输出

     

     

     

    bool判断真假  0和 空 为 Flase

     

     

     

     

    Bytearry把二进制变成一个列表的格式可以修改

     

     

     

    bytes把字符串变成 byte类型

     

     

    输出

     

     

     

     

    callable

    判断是否是可调用的类型(函数,类)

     

    输出

    True

     

     

     

    Car()把数字转化成 ASCII码相对应的 字符

     

    输出

     

     


    Ord()把ASCII码相对应的字符转化成 数字

     

     

    输出

     

     

     

     

     exex()可以把字符串 转成代码执行

     

    输出

     

     

     

     

      dir 查看内置方法

    a=(1,2)
    print(dir(a))

    输出

     

     

     

    divmod求两数相除后的 整数值 余数

     

    输出

     

    evel根据字符串的格式将其转化为 列表,元组,字典,集合

    输出

     

     

     

     

    Lambda匿名函数 方法体是n:后边的

     

     

     

    输出

     

     

    filter过滤

    例子:过滤得到5以上的元素

    得到res一个迭代器,然后循环输出

     

    输出

     

     

     

    Map将 引用中 的每个元素,拿出来进行操作

    目标可以是 列表,元组,集合,字典(只会对key进行操作)

        

           

          

    输出                             

     

    字典的输出

     

     

     

    frozenset把数据变成不可更改的

     

    a=[1,2,4]
    frozenset(a)

     

     

     

    globals()打印当前程序的全局变量

    按照key:velue的方式打印出来 包含文件名 地址

     

     

     

    locals()打印当前程序的 局部变量

     

     

     

     

     

     

     

     

     

     

    Hash

    把字符串在转成相应的数字,在数据类型中,通过转化成的数字排序后,判断数据所在的位置,从而实现快速查找。这是在内部实现的。

     

     

     

     

    输出

     

     

     

     

    hex()转成16进制

     

     

    Max 得到列表最大值

     

    输出

     

    Min得到列表最小值

     

     

    Pow()计算 几次方

    Pow()计算2的3次方

     

    输出:

     

     

     

     

     

     round保留小数点后面的 几位

     

     

     

     

     

    sorted()给字典排序

     

    输出 按照key进行排序

     

     

     

    输出 按照velue进行排序

     

    输出

     

     

     

     

    Zip拉链

    将两个列表合并到一起 变成为n个元组,数据一一对应

    如果a b元素个数不一样。就会忽略后面几个元素,如下图

      

     

    输出

     

     

     

     

     

    __import__ 调用执行 其他程序的方法

    方法一:

    from work.day04.Atm.core.user_name import user

    Json

    只能处理简单的数据类型

    列表 元组 字典 集合

    无法处理 函数

     

    json序列化

     

     

    json反序列化

     

     

     

     

    函数序列化 需要使用

    import pickle

    pickle.dump(

     

     

     

     

    获得程序文件位置路径,调用方法时很有用

     

    输出

     

     

    调用其他包的函数

     

     

     

     

    项目目录结构

     

     

     

     

     

     

    1. bin/: 存放项目的一些可执行文件,当然你可以起名script/之类的也行。
    2. foo/: 存放项目的所有源代码。(1) 源代码中的所有模块、包都应该放在此目录。不要置于顶层目录。(2) 其子目录tests/存放单元测试代码; (3) 程序的入口最好命名为main.py
    3. docs/: 存放一些文档。
    4. setup.py: 安装、部署、打包的脚本。
    5. requirements.txt: 存放软件依赖的外部Python包列表。
    6. README: 项目说明文件。

     

     

    关于README的内容

    这个我觉得是每个项目都应该有的一个文件,目的是能简要描述该项目的信息,让读者快速了解这个项目。

    它需要说明以下几个事项:

      1. 软件定位,软件的基本功能。
      2. 运行代码的方法: 安装环境、启动命令等。
      3. 简要的使用说明。
      4. 代码目录结构说明,更详细点可以说明软件的基本原理。
      5. 常见问题说明。
  • 相关阅读:
    彻底卸载MySql
    MySql和SQL Server数据类型 对比
    easyui combobox 中实现 checkbox
    浅谈研发项目经理
    软件公司项目经理岗位职责
    input text 的事件及方法
    c#解析HTML
    SQL SERVER 数据库查询表和字段信息语句
    Silverlight动态载入调用XAML资源
    几种设计模式简介(转载)
  • 原文地址:https://www.cnblogs.com/HL-blog/p/7421043.html
Copyright © 2011-2022 走看看