Python自学基础教程大纲

Python自学教程大纲
小白入门总结——马永亮Python视频1--60讲大纲

大纲

  1. Python编程基础
  2. Python对象类型及其运算
  3. Python流程控制
  4. Python迭代器和列表解析
  5. Python文件对象
  6. Python函数
  7. Python类与面向对象
  8. Python模块
  9. Python异常
  10. Python执行环境
  11. Python代码的测试、调试与探查

01. Python编程基础

Python程序文件结构

程序→模块→语句→表达式

Python的关键要素(8个)

要素#1:基本数据类型

  • Integral类型
  • 浮点类型
  • 字符串

要素#2:对象引用(变量)

变量是指向内存对象的引用(变量没有类型,对象才有)

变量命名规则

Python命名惯例

要素#3:组合数据类型

  • 序列类型(最基本的)
    • 列表
    • 元组
    • 字符串
    • Unicode字符串
    • buffer对象
    • xrange对象
  • 集合类型
    • 集合
  • 映射类型
    • 字典

要素#4:逻辑操作符

  • ①身份操作符
  • ②比较操作符
  • ③成员操作符
  • ④逻辑运算符

要素#5:控制流语句

  • if
  • while
  • for…in
  • try

要素#6:算数操作符

要素#7:输入/输出

要素#8:函数的创建与调用

Python编程风格

语句和语法

标识符

命名惯例

Python文件结构

  • ①起始行
  • ②模块文档
  • ③模块导入
  • ④(全局)变量定义
  • ⑤类定义
  • ⑥函数定义
  • ⑦主程序

02. Python对象类型及其运算

所有数据皆对象
所有对象都有一个身份(id)、一个类型(type)、一个值(value) ;
所有对象都有引用计数(sys.getrefcount()) ;

对象都是类实例化而来
类:数据(即变量)+方法(即函数)

Python核心数据类型

  • 数字:int,long,float,complex,bool
    不可变
  • 字符:str,unicode
    不可变
    可迭代对象
    支持操作:切片,索引,增,删,改
  • 列表:list
    容器类型,可变
    可迭代对象(列表解析)
    支持操作:切片,索引,增,删,改
  • 元组:tuple
    容器类型,不可变
    可迭代对象
    支持操作:切片,索引
  • 字典:dict
    容器类型,可变,无序
    可迭代对象
    索引非常快
    支持操作:索引,增,删,改
  • 集合:set
    无序,可哈希
    支持操作:并,交,差
  • 文件:file
  • 其他类型:frozenset(冻结集合),类类型(类本身也是一种类型),None

表达式和语句

  • 表达式:某事
    表达式操作符(存在运算优先级)
  • 语句:做某事
    • 赋值语句
    • 调用语句
    • 条件语句
    • 控制语句
    • ……

03. Python流程控制

if 语句

if boolean_expression1: 
    suite1 
elif boolean_expression2: 
    suite2 
.... 
else: 
    else_suite 

while 循环语句

一般用于非遍历式的,速度比较慢

while boolean_expression: 
    while_suite 
else: 
    else_suite 

for 循环语句

用于可遍历式的,速度快

for expression1 in iterable: 
    for_suite 
else: 
    else_suite 

04. Python迭代器和列表解析

如果某对象在其内部实现了__iter____getitem__方法,则该对象为可迭代(iterable)对象

  • 字符,列表,元组;
  • 字典;
  • 文件

迭代器(也叫游标)

  • 生成方式:
    1. 直接调用内置的`__iter__`方法;
    2. iter() 函数
  • 调用方式:next()
  • 不可逆,遍历完后要重新创建

▲列表解析

  • 根据已有列表,高效生成新列表的方式。
  • 语法:
[ expression for iter_var in iterable ] 

[ expression for iter_var in iterable if cond_expr] 
  • 直接返回一个新列表

▲生成器

  • 返回一个生成器对象,一次只生成一个值——惰性计算方式
  • 语法:
(expr for iter_var in iterable) 

(expr for iter_var in iterable if cond_expr) 

05. Python文件对象

  • 文件和文件系统
  • 打开文件
    • 语法:ar_name = open(name [, mode [, bufsize]])
    • 打开模式mode:r,w,a,r+,w+,a+
  • python文件是可迭代对象next()
  • 读取行.readline(),readlines()
  • 指针
    • .tell()
    • 移动指针:seek(offet [, whence])
      • offset: 偏移量
      • whence: 偏移的起点
        0:从文件头部开始偏移(默认)
        1:从当前位置开始偏移
        2:从文件尾部开始偏移
  • 关闭文件:.close()

os模块

  • 目录 相关的方法
  • 文件 相关的方法
  • 访问权限 相关的方法
  • 文件描述符 相关的方法
  • 设备文件 相关的方法

pickle模块

可以直接将python中的原生对象存储到文件中

06. Python函数

  • python中有4种函数:

    • ①全局函数
    • ②局部函数
    • ③lambda函数/匿名函数
    • ④方法(类中的函数)
  • 创建函数

    • 语法:
def funtionName(parameters): 
    suite 
  • 函数作用域(名称空间)/变量名解析

    • LEGB原则:本地→函数内→全局→内置
    • 函数的闭包(工厂函数)
    • 函数定义了本地作用域
    • 模块定义了全局作用域
  • 参数传递
    注意:不要在函数内部去修改可变对象

  • 参数匹配模型

    • 位置参数
    • 关键字参数
    • 默认参数
    • 可变参数

匿名函数lambda

  • 语法:
lambda args: expression 

是个表达式而非语句,直接返回函数对象

Python函数式编程/泛函编程

就是把函数当作参数传递给另一个函数,实现函数调用函数

  1. 过滤器:
filter(func, seq)
  1. 映射器:
map(func, seq1 [, seq2 ...])
  1. 折叠:
from functools import reduce 
reduce(func, seq1 [, init]) 

yield生成器

在函数中使用yield,会返回一个生成器对象

装饰器

本身也是一个函数
功能:增强被装饰函数的功能
使用@符号进行调用

递归函数

自己调用自己
组成:边界条件,递归前进段,递归返回段

函数的设计规范

  • (降低)耦合性
  • (提高)聚合性

07. Python类与面向对象

python既可以面向过程,也能够面向对象。

面向对象编程(OOP)

  • 先有类,类实例化出对象
  • 类的成员:状态集合(数据)+ 转换这些状态的操作集合(方法)

类间的关系

1、依赖(“uses-a”)
2、聚合(“has-a”)
3、继承(“is-a”)

3个原则

  1. 封装(Encapsulation)
  2. 继承(Inheritance)
  3. 多态性(Polymorphism)

创建类

  • 一般形式 :
class ClassName(bases): 
    'class documentation string' 
    data = value #定义数据属性 
    def method(self, ...): #定义方法属性,可调用 
        self.meber = value 

类中每个方法必须具有self参数,它隐含当前实例之意

类属性

  • object.attr
  • 获取方式:.__dict__ dir()
  • 特殊类属性
    __dict__, __name__, __doc__, __bases__, __module__, __class__

类方法

  • 调用:object.method()
  • python规定,没有实例,方法不允许被调用,此即为“绑定”

python构造器

每一个类都有一个称为构造器的特殊方法——__init__
隐性地为实例提供属性

python析构器/解构器

__del__
销毁一个实例

实例属性

实例仅拥有数据属性(严格来说,方法是类属性)
通常通过构造器__init__为实例提供的属性

类的继承

  • 创建子类:
class SubClassName(ParentClass1 [, ParentClass2, ...]): 
    'optional class documentation string' 
     class_suite 
  • 属性搜索树

类、实例和其他对象的一些内建函数

issubclass()
isinstance()
hasattr()
super()

运算符重载

在方法中拦截内置的操作,重新定义

08. Python模块

python模块其实就是python的程序文件(.py)

python程序框架

  • 顶层文件(1个):程序执行入口
  • 模块文件(0,1,多个)
  • 标准库模块

导入模块

import module1 [, module2 [,... moduleN]] 
import module as module_alias 
form module import name1 [, name2 [, ... nameN]] 

模块的工作机制

import时会执行3个步骤

  1. 找到模块文件
    模块搜索——搜索路径:sys.path
  2. 编译成字节码
  3. 执行模块的代码来创建其所定义的对象

python包

将一组模块归并到一个目录中,此目录即为包

import dir1.dir2.mod1 #包名.子包名.模块名 

模块的顶层执行及被导入

  • 顶层执行
    作为顶层文件
    内置属性__name__的值为 __main__

  • 被导入
    作为模块文件
    内置属性__name__的值为模块名

发布python模块或程序

使用disutils发布模块

09. Python异常

python的运行时发生的错误称作异常

  • 语法错误
  • 逻辑错误

异常的功用

  • 错误处理:默认停止程序,打印错误信息
  • 事件通知
  • 特殊情况处理
  • 终止行为
  • 非常规控制流程

检测和处理异常

通过try语句检测

  1. try-except:检测和处理异常
  2. try-finally:仅检查异常并做一些必要的清理工作
  • 复合形式:try-except-finally

自定义异常——raise

格式:raise [SomeException [, args [, traceback]]]

异常对象

  • 异常是一个对象
  • 基类:Exception,BaseException
  • 标准异常类StandarError
  • 自定义异常类
    • 多重继承:从自定义异常类和标准异常类进行多重继承
    • python标准库中的许多模块都定义了自己的异常类
class CustomAttributeError(CustomException, AttributeError): 
    pass 

assert断言语句

在程序中引入调试代码,实现手动触发异常
简化版的自定义异常方式

assert condition [, expression] 

10. Python执行环境

Python解释器环境与选项

启动解释器的命令行参数:
python [option] [-c cmd| filename | - ] [args]

Python解释器环境变量

11. Python代码的测试、调试与探查

python文档字符串(docstrings)

内置函数help()或对象的默认方法__doc__可显示

doctest模块

基于文档对程序本身做测试

可创建自测试的模块

if __name__ == '__main__': 
    import doctest 
    doctest.testmod() 

--完--

附:本文思维导图版:https://mp.weixin.qq.com/s?__biz=MzI2ODU3MDE0NQ==&mid=2247483873&idx=1&sn=2e50e9c2c04a0607711bdf3d3d7f2a88&chksm=eaecdaafdd9b53b95d6c3b75ada25090e70c1b6c1a0d73b3a2ca7b1ccedb47c592a8989b6f7a&token=2117383101&lang=zh_CN#rd

 

你可能感兴趣的:(python)