zoukankan      html  css  js  c++  java
  • python-知识点的复习

    一、模块、包

    1、什么是模块?

      1、把相同功的函数放在一个py文件里,称为模块。

      2、一个PY文件就称为一个模块。

      3、模块有什么好处:

        1、容易维护。

        2、减少变量和函数名冲突。

      4、模块种类:

        1、第三方模块——别人写的模块

        2、内置模块——编译器自带模块(如:os、sys、等)

        3、自定义模块——自己编写的模块

      5、模块怎么导入:

        通过import命令导入,eg:import os(模块名)

    2、什么是包?

      1、把多个模块放在同一个文件夹内,这个文件夹称为包。

      2、文件夹称为包还有一个条件——文件夹里要有__init__.py模块。

    3、模块与包有什么区别

      1、模块——一个py文件就称一个模块

      2、包——一个包含有__init__.py的文件夹称为一个包;一个包里可以有多个py模块。

    json、pickle

    1、什么是序列化?

      1、把内存数据转换成字符串。

        1、把内存数据保存到硬盘。

        2、把内存数据传输给他人(由于网络传输是通过二进制传输,所以需要进行转换)。

      2、序列化的模块有两个,json和pickle

    2、json、pickle有什么优点和缺点?

      1、json——把json所支持的数据转换成字符串

            优点:体积小、跨平台。

            缺点:只支持int、str、list、dict、tuple等类型。

      2、pickle——把python所支持的所有类型转换成字符串

            优点:支持python 全部数据类型

            缺点:只能在python平台使用,占用空间大。

      3、json和pickle有4个方法

        load 、loads 、dump 、dumps 

           load:通过open函数的read文件方法,把内存数据转成字符串

        loads:把内存数据转成字符串

       dump:通过open函数的write文件方法,把字符串转换成相应的数据类型。

       dumps:把字符串数据转成相应的数据类型。

    shelve

    1、什么是shelve?

      1、shelve是一种key,value 形式的文件序列化模块;序列化后的数据是列表形式。

      2、底层封装了pickle模块,支持pickle模块所支持的数据类型。

      3、可以进行多次反序列化操作。

    hashlib

    1、什么是hashlib?

      hashlib 模块——也称‘哈希’模块。

      通过哈希算法,可以将一组不定长度的数据,生成一组固定长度的数据散列。

      特点:

      1、固定性——输入一串不定长度的数据,生成固定长度的数字散列。

      2、唯一性——不同的输入所得出的数据不一样。

    2、md5

      输入一串不定长度的数据,生成128位固定长度的数据。

      特点:

      1、数字指纹——输入一串不定长度的数据,生成128位固定长度的数据(数字指纹)。

      2、运算简单——通过简单的运算就可以得出。

      3、放篡改——改动很少,得出的值都会不一样。

      4、强碰撞——已知MD5值,想找到相同的MD5值很难。

    函数

    1、什么是函数?

      把代码的集合通过函数名进行封装,调用时只需要调用其函数名即可。

      有什么好处:

      1、可扩展

      2、减少重复代码

      3、容易维护

    2、函数的参数?

      函数可以带参数:

      形参:

      1、在函数定义是指定。

      2、函数调用时分配内存空间,函数运行结束,释放内存空间。

      实参:

      1、形式可以是常量、变量、表达式、函数等形式。

      2、无论是何种形式,都必须要有明确的值,以便把数据传递给形参。

      默认参数:

      1、函数定义时可以指定默认参数(eg: def func(a,b=1))

      2、传参时指定了默认参数,就使用传参时的值,没有指定,则使用默认参数的值。

      关键参数:

      1、函数传参时需按顺序传参,如果不按顺序传参可以使用关键参数传参。  

      非固定参数:

      1、当不确定参数的数量时可以使用非固定参数。

      2、非固定参数有两种:1.*args——(传入的参数以元组表示)。2.**kwargs——(传入的阐述用字典表示)

    3、函数的返回值

      1、函数可以把运算的结果返回。

      2、函数可以有返回值,也可以没有返回值。

        有返回值——通过return返回。

        没有返回值——返回值为None

      3、函数遇到return,代表函数运行结束。

    4、函数的种类

      嵌套函数——一个函数包含了另一个函数。

      高阶函数——一个函数的参数引用了另一个函数,一个函数的返回值是另一个函数。

      匿名函数——不用显式指定函数名的函数(lambrda),常和map和filter配合使用。

      递归函数

      1、函数内部引用了函数自身

      2、函数里有一个明确的结束条件。

      递归函数的特性:

      1、有一个明确的结束条件

      2、每次递归的规模都应有所减少

      3、递归函数的效率不高。

    作用域

    1、名称空间

      名称空间就是存放变量名和变量值(eg:x=1)绑定关系的地方。

      1、名称空间种类:

        local:函数内部,包括形参和局部变量。

        global:函数所在模块的名字空间。

        buildin:内置函数的名字空间。

      2、变量名的作用域范围的不同,是由这个变量名所在的名称空间所决定的。

        全局范围:全局存活,全局有效。

        局部范围:局部存活,局部有效。  

    2、作用域查找顺序

      作用域查找顺序:

        local——》enclosing function——》global——》builtin

      local:函数内部,包括形参、局部参数。

      enclosing function:内嵌函数。

      global:函数所在模块。

      builtin:内置函数。

    闭包

    1、什么是闭包

      1、一个嵌套函数,分别有内函数,外函数。

      2、内函数使用了外函数的变量。

      3、外函数返回了内函数的应用地址。

      4、那么这个嵌套函数就称为闭包。

    2、闭包有什么意义

      1、闭包返回的对象不仅仅是一个对象,而且还返回了这个函数的外层包裹的作用域。

      2、无论这个函数在何处被调用,都优先使用其外层作用域。

    装饰器

    1、什么是装饰器

      1、装饰器本质上就是一个闭包函数。

      2、装饰器的作用是,在不改变原有函数的调用方式下,增加代码的功能。

  • 相关阅读:
    ScheduledThreadPoolExecutor 使用线程池执行定时任务
    ocals是Express应用中 Application(app)对象和Response(res)
    Spring Test 整合 JUnit 4 使用总结
    javascript创建一个基于对象的栈结构
    亲密字符串之Javascript解法
    javascript创建一个基于数组的栈结构
    整数反转
    stage1----航空票务系统需求分析报告
    实验报告
    Lamda 表达式
  • 原文地址:https://www.cnblogs.com/AYxing/p/8934383.html
Copyright © 2011-2022 走看看