老男孩第十四期Python学习班之Day05
一、小鸡汤
推荐各种电影 — —!大概有20几部。
二、ATM作业分析
设计思想 —— 解耦
三、定义
模块的定义:用来从逻辑上组织python代码(变量、函数、类、逻辑:实现一个功能)。本质就是一个*.py文件。
包的定义:用逻辑上组织模块,本质是一个目录(必须带有一个__init__.py的文件)
四、模块的导入
- import module_name # 调用时,module_name.func()
- import module_name1, module_name2
- from module_name import * # 导入模块下所有代码,调用时不再用module_name.func()
- from module_name import say_hello # 导入模块中的say_hello方法。调用时say_hello()
- from module_name import func1, func2, func3 # 多个导入
- module_name import say_hello as m1_sayhello # 调用时m1_sayhello()。 as 别名。
五、import的本质(路径搜索,搜索路径)
本质:就是把python文件解释一遍。
导入包的本质:就是执行包里面的 __init__.py 文件
六、优化
尽量使用from xx import xxx的方式,这样不会多次查找。
七、模块的分类
- 标准库
- 第三方模块
- 自定义模块
八、标准库
1、time与datetime:表示是时间的方式:1、时间戳;2、格式化;3、元祖(struct_time)九个元素。
2、random
3、os
4、sys
5、shutil
6、json与pickle
用于序列化的两个模块
- json,用于字符串 和 python数据类型间进行转换
- pickle,用于python特有的类型 和 python的数据类型间进行转换
Json模块提供了四个功能:dumps、dump、loads、load
pickle模块提供了四个功能:dumps、dump、loads、load
7、shelve
8、XML
9、ConfigParser
10、hashlib
11、re
作业:
开发一个简单的python计算器
- 实现加减乘除及拓号优先级解析
- 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式(不能调用eval等类似功能偷懒实现),运算后得出结果,结果必须与真实的计算器所得出的结果一致
转载于:https://my.oschina.net/asktao/blog/820589