一、模块

  1. # 模块(module)
  2. # 模块化,模块化指将一个完整的程序分解为一个一个小的模块
  3. # 通过将模块组合,来搭建出一个完整的程序
  4. # 不采用模块化,统一将所有的代码编写到一个文件中
  5. # 采用模块化,将程序分别编写到多个文件中
  6. # 模块化的有点:
  7. # ① 方便开发
  8. # ② 方便维护
  9. # ③ 模块可以复用!
  10.  
  11. # 在Python中一个py文件就是一个模块,要想创建模块,实际上就是创建一个python文件
  12. # 注意:模块名要符号标识符的规范
  13.  
  14. # 在一个模块中引入外部模块
  15. # ① import 模块名 (模块名,就是python文件的名字,注意不要后边的.py)
  16. # ② import 模块名 as 模块别名
  17. # - 可以引入同一个模块多次,但是模块的实例只会创建一个
  18. # - import可以在程序的任意位置调用,但是一般情况下,import语句都会统一写在程序的开头
  19. # - 在每一个模块内部都有一个__name__属性,通过这个属性可以获取到模块的名字
  20. # - __name__属性值为 __main__的模块是主模块,一个程序中只会有一个主模块
  21. # 主模块就是我们直接通过 python 执行的模块
  22. import test_module as test
  23.  
  24. # print(test.__name__)
  25. print(__name__)

测试

  1. # 可以在模块中定义变量,在模块中定义的变量,在引入模块后,就可以直接使用了
    #m.py文件
  2. a = 10
  3. b = 20
  4.  
  5. # 添加了_的变量,只能在模块内部访问,在通过import * 引入时,不会引入_开头的变量
  6. _c = 30
  7.  
  8. # 可以在模块中定义函数,同样可以通过模块访问到
  9. def test():
  10. print('test')
  11.  
  12. def test2():
  13. print('test2')
  14.  
  15. # 也可以定义类
  16. class Person:
  17. def __init__(self):
  18. self.name = '孙悟空'
  19.  
  20. # 编写测试代码,这部分代码,只要当当前文件作为主模块的时候才需要执行
  21. # 而当模块被其他模块引入时,不需要执行的,此时我们就必须要检查当前模块是否是主模块
  22. if __name__ == '__main__':
  23. test()
  24. test2()
  25. p = Person()
  26. print(p.name)
  1. # import m
  2.  
  3. # # 访问模块中的变量:模块名.变量名
  4. # # print(m.a , m.b)
  5.  
  6. # # m.test2()
  7.  
  8. # p = m.Person()
  9.  
  10. # print(p.name)
  11.  
  12. def test2():
  13. print('这是主模块中的test2')
  14.  
  15. # 也可以只引入模块中的部分内容
  16. # 语法 from 模块名 import 变量,变量....
  17. # from m import Person
  18. # from m import test
  19. # from m import Person,test #引入2个
  20. # from m import * # 引入到模块中所有内容,一般不会使用
  21. # p1 = Person()
  22. # print(p1)
  23. # test()
  24. # test2()
  25.  
  26. # 也可以为引入的变量使用别名
  27. # 语法:from 模块名 import 变量 as 别名
  28. # from m import test2 as new_test2
  29.  
  30. # test2()
  31. # new_test2()
  32.  
  33. from m import *
  34. # print(_c)
  35.  
  36. # import xxx
  37. # import xxx as yyy
  38. # from xxx import yyy , zzz , fff
  39. # from xxx import *
  40. # from xxx import yyy as zz

  1. # 包 Package
  2. # 包也是一个模块
  3. # 当我们模块中代码过多时,或者一个模块需要被分解为多个模块时,这时就需要使用到包
  4. # 普通的模块就是一个py文件,而包是一个文件夹
  5. # 包中必须要一个一个 __init__.py 这个文件,这个文件中可以包含有包中的主要内容
  6. from hello import a , b
  7.  
  8. print(a.c)
  9. print(b.d)
  10.  
  11. # __pycache__ 是模块的缓存文件
  12. # py代码在执行前,需要被解析器先转换为机器码,然后再执行
  13. # 所以我们在使用模块(包)时,也需要将模块的代码先转换为机器码然后再交由计算机执行
  14. # 而为了提高程序运行的性能,python会在编译过一次以后,将代码保存到一个缓存文件中
  15. # 这样在下次加载这个模块(包)时,就可以不再重新编译而是直接加载缓存中编译好的代码即可

二、标准库

  1. # 开箱即用
  2. # 为了实现开箱即用的思想,Python中为我们提供了一个模块的标准库
  3. # 在这个标准库中,有很多很强大的模块我们可以直接使用,
  4. # 并且标准库会随Python的安装一同安装
  5. # sys模块,它里面提供了一些变量和函数,使我们可以获取到Python解析器的信息
  6. # 或者通过函数来操作Python解析器
  7. # 引入sys模块
  8. import sys
  9.  
  10. # pprint 模块它给我们提供了一个方法 pprint() 该方法可以用来对打印的数据做简单的格式化
  11. import pprint
  12.  
  13. # sys.argv
  14. # 获取执行代码时,命令行中所包含的参数
  15. # 该属性是一个列表,列表中保存了当前命令的所有参数
  16. # print(sys.argv)
  17.  
  18. # sys.modules
  19. # 获取当前程序中引入的所有模块
  20. # modules是一个字典,字典的key是模块的名字,字典的value是模块对象
  21. # pprint.pprint(sys.modules)
  22.  
  23. # sys.path
  24. # 他是一个列表,列表中保存的是模块的搜索路径
  25. # ['C:\\Users\\lilichao\\Desktop\\resource\\course\\lesson_06\\code',
  26. # 'C:\\dev\\python\\python36\\python36.zip',
  27. # 'C:\\dev\\python\\python36\\DLLs',
  28. # 'C:\\dev\\python\\python36\\lib',
  29. # 'C:\\dev\\python\\python36',
  30. # 'C:\\dev\\python\\python36\\lib\\site-packages']
  31. # pprint.pprint(sys.path)
  32.  
  33. # sys.platform
  34. # 表示当前Python运行的平台
  35. # print(sys.platform)
  36.  
  37. # sys.exit()
  38. # 函数用来退出程序
  39. # sys.exit('程序出现异常,结束!')
  40. # print('hello')
  41.  
  42. # os 模块让我们可以对操作系统进行访问
  43. import os
  44.  
  45. # os.environ
  46. # 通过这个属性可以获取到系统的环境变量
  47. # pprint.pprint(os.environ['path'])
  48.  
  49. # os.system()
  50. # 可以用来执行操作系统的名字
  51. # os.system('dir')
  52. os.system('notepad')

三、异常

  1. # 第七章 异常和文件
  2.  
  3. ## 异常
  4. 程序在运行过程当中,不可避免的会出现一些错误,比如:
  5. 使用了没有赋值过的变量
  6. 使用了不存在的索引
  7. 0
  8. ...
  9. 这些错误在程序中,我们称其为异常。
  10. 程序运行过程中,一旦出现异常将会导致程序立即终止,异常以后的代码全部都不会执行!
  11.  
  12. ## 处理异常
  13. 程序运行时出现异常,目的并不是让我们的程序直接终止!
  14. Python是希望在出现异常时,我们可以编写代码来对异常进行处理!
  15.  
  16. try语句
  17. try:
  18. 代码块(可能出现错误的语句)
  19. except 异常类型 as 异常名:
  20. 代码块(出现错误以后的处理方式)
  21. except 异常类型 as 异常名:
  22. 代码块(出现错误以后的处理方式)
  23. except 异常类型 as 异常名:
  24. 代码块(出现错误以后的处理方式)
  25. else
  26. 代码块(没出错时要执行的语句)
  27. finally:
  28. 代码块(该代码块总会执行)
  29.  
  30. try是必须的 else语句有没有都行
  31. exceptfinally至少有一个
  32.  
  33. 可以将可能出错的代码放入到try语句,这样如果代码没有错误,则会正常执行,
  34. 如果出现错误,则会执行expect子句中的代码,这样我们就可以通过代码来处理异常
  35. 避免因为一个异常导致整个程序的终止
  36.  
  37. ## 异常的传播(抛出异常)
  38. 当在函数中出现异常时,如果在函数中对异常进行了处理,则异常不会再继续传播,
  39. 如果函数中没有对异常进行处理,则异常会继续向函数调用处传播,
  40. 如果函数调用处处理了异常,则不再传播,如果没有处理则继续向调用处传播
  41. 直到传递到全局作用域(主模块)如果依然没有处理,则程序终止,并且显示异常信息
  42.  
  43. 当程序运行过程中出现异常以后,所有的异常信息会被保存一个专门的异常对象中,
  44. 而异常传播时,实际上就是异常对象抛给了调用处
  45. 比如 ZeroDivisionError类的对象专门用来表示除0的异常
  46. NameError类的对象专门用来处理变量错误的异常
  47. ....
  48.  
  49. Python为我们提供了多个异常对象
  50.  
  51. ## 抛出异常
  52. - 可以使用 raise 语句来抛出异常,
  53. raise语句后需要跟一个异常类 异常的实例
  54.  
  55. ## 文件(File)
  56. - 通过Python程序来对计算机中的各种文件进行增删改查的操作
  57. - I/O(Input / Output)
  58. - 操作文件的步骤:
  59. 打开文件
  60. 对文件进行各种操作(读、写),然后保存
  61. 关闭文件
  1. # print('hello')
  2. # try:
  3. # # try中放置的是有可能出现错误的代码
  4. # print(10/0)
  5. # except:
  6. # # except中放置的是出错以后的处理方式
  7. # print('哈哈哈,出错了~~~')
  8. # else:
  9. # print('程序正常执行没有错误')
  10. # print('你好')
  11.  
  12. # print(10/0)
  13.  
  14. def fn():
  15. print('Hello fn')
  16. print(a)
  17. print(10/0)
  18.  
  19. def fn2():
  20. print('Hello fn2')
  21. fn()
  22.  
  23. def fn3():
  24. print('Hello fn3')
  25. fn2()
  26.  
  27. fn3()
  1. print('异常出现前')
  2. l = []
  3. try:
  4. # print(c)
  5. # l[10]
  6. # 1 + 'hello'
  7. print(10/0)
  8. except NameError:
  9. # 如果except后不跟任何的内容,则此时它会捕获到所有的异常
  10. # 如果在except后跟着一个异常的类型,那么此时它只会捕获该类型的异常
  11. print('出现 NameError 异常')
  12. except ZeroDivisionError:
  13. print('出现 ZeroDivisionError 异常')
  14. except IndexError:
  15. print('出现 IndexError 异常')
  16. # Exception 是所有异常类的父类,所以如果except后跟的是Exception,他也会捕获到所有的异常
  17. # 可以在异常类后边跟着一个 as xx 此时xx就是异常对象
  18. except Exception as e :
  19. print('未知异常',e,type(e))
  20. finally :
  21. print('无论是否出现异常,该子句都会执行')
  22.  
  23. print('异常出现后')

自定义异常

  1. # 也可以自定义异常类,只需要创建一个类继承Exception即可
  2. class MyError(Exception):
  3. pass
  4.  
  5. def add(a,b):
  6. # 如果a和b中有负数,就向调用处抛出异常
  7. if a < 0 or b < 0:
  8. # raise用于向外部抛出异常,后边可以跟一个异常类,或异常类的实例
  9. # raise Exception
  10. # 抛出异常的目的,告诉调用者这里调用时出现问题,希望你自己处理一下
  11. # raise Exception('两个参数中不能有负数!')
  12. raise MyError('自定义的异常')
  13.  
  14. # 也可以通过if else来代替异常的处理
  15. # return None
  16. r = a + b
  17. return r
  18.  
  19. print(add(-123,456))

[19/10/16-星期三] Python中的模块和包、异常、操作文件的更多相关文章

  1. python中的模块和包

    模块 一 什么是模块 模块就是一组功能的集合体,可以通过导入模块来复用模块的功能. 比如我在同一个文件夹定义两个.py文件,分别命名为A.py和B.py,那么可以通过在A文件里通过import B来使 ...

  2. python中的模块及包及软件目录结构规范

    知识内容: 1.模块的定义与分类 2.模块的导入 3.模块与包 4.不同目录下的模块调用 一.模块的定义与分类 1.什么是模块 模块就是实现了某个功能的代码集合,模块是由一大堆代码构成的 类似于函数式 ...

  3. [19/10/13-星期日] Python中的函数

    一.函数 # 第五章 函数 ## 函数简介(function) - 函数也是一个对象 - 对象是内存中专门用来存储数据的一块区域 - 函数可以用来保存一些可执行的代码,并且可以在需要时,对这些语句进行 ...

  4. Python中的模块与包

    标准库的安装路径 在import模块的时候,python是通过系统路径找到这些模块的,我们可以将这些路径打印出来: >>> pprint.pprint(sys.path) ['', ...

  5. 面试---Python中的模块和包是什么?

    python模块是: 自我包含并且有组织的代码片段为模块. 表现形式为:写的代码保存为文件.这个文件就是一个模块.sample.py 其中文件名smaple为模块名字. python包是: 包是一个有 ...

  6. Python之路-Python中的模块与包

    一.模块简介 在实际开发中我们不可能不用到系统的标准模块,或第三方模块. 如果想实现与时间有关的功能,就需要调用系统的time模块.如果想实现与文件和文件夹有关的操作,就需要要用到os模块. 每一个 ...

  7. python中的模块以及包导入

    python中的导入关键字:import 以及from  import 1.import import一般用于导入包以及模块. 不过有个小问题: (1)当导入的是模块的时候是可以直接可以使用模块内的函 ...

  8. Python 3基础教程20-Python中导入模块和包

    本文介绍Python中导入模块和包 #目录: # 导入模块和包--- # | # 上级包.上级模块.导入模块和包的init模块----- # | # 同级包.同级模块.上级包的init模块.test模 ...

  9. Python中optionParser模块的使用方法[转]

    本文以实例形式较为详尽的讲述了Python中optionParser模块的使用方法,对于深入学习Python有很好的借鉴价值.分享给大家供大家参考之用.具体分析如下: 一般来说,Python中有两个内 ...

随机推荐

  1. Perf Event :Linux下的系统性能调优工具

    Perf Event :Linux下的系统性能调优工具 2011-05-27 10:35 刘 明 IBMDW 字号:T | T Perf Event 是一款随 Linux 内核代码一同发布和维护的性能 ...

  2. java 责任链接模式

  3. Gitlab+Jenkins+Docker实现net core持续集成

    前言 在项目中使用这一套自动集成的体系之后,一直想找个时间总结出来,用于自己记录也打算将自己的所得分享给园友们,不经常写文章,可能会有错误的地方,希望各位不吝指正,我会及时的改正并表示感谢,希望大家能 ...

  4. Python 3标准库课件

    开课前的一些讲话: 一.大家晚上好,首先非常的荣幸能够在网易云平台开设讲解Python的这门课程,我也是第一次讲解哦,下面说说我讲解课程的原因,1.因为我发现市场上讲解Python的课程很多,不过,大 ...

  5. electron 编译报错

    放在中文目录下的项目,会编译的时候报错 python 安装目录不要有空格,默认目录就好

  6. Python 列表(List)Ⅱ

    删除列表元素 可以使用 del 语句来删除列表的元素,如下实例: . 以上实例输http://www.xuanhe.net/出结果: 注意:我们会在接下来的章节讨论remove()方法的使用 Pyth ...

  7. DOM例子小结(一)

    一.点击按钮切换图片 核心思路: 1.首先获取元素 2.为元素添加点击事件 3.当事件被触发时运行代码 <!DOCTYPE html> <html lang="en&quo ...

  8. AJAX - 向服务器发送请求请求

    AJAX - 向服务器发送请求请求 XMLHttpRequest 对象用于和服务器交换数据.直线电机生产厂家 向服务器发送请求 如需将请求发送到服务器,我们使用 XMLHttpRequest 对象的 ...

  9. 问:在指定的JSON数据中(最外层是数组)根据指定条件拿到匹配到的结果

    let carr = [{ "code": "000", "agyTypeCode": "1", "name& ...

  10. jQuery file upload process queue

    在jquery.ui.widget.js中bridge处打上断点,查看instance内容 $.widget.bridge = function( name, object ) { var fullN ...