做为“所谓码农”的首篇,本章内容理应涵盖基本编程技法。html
Python这个东西、简洁,做为载体,是个不错的选择呦。python
连接资源:面试
教学要求:正则表达式
面试级别编程
Ref: [Python] 01 - Number and Matrix json
一些常见的不熟悉的地方,详见连接。安全
不一样进制:0b123 0o123 0x123,对应的 ”char查看函数":ord('a'),chr(115) --> hex(id(iList)) # 只能对数字,不能对变量,例如错误的示范:hex('a')服务器
大数:幂(**), e等网络
# 专业的十进制
import decimal
# 专业的分数
from fractions import Fraction
python自己提供的三个经常使用库:math, random, statistics并发
随机数通常用一下原生的方法,更专业的仍是建议使用更为专业的库。
固然,numpy 提供了更为系统的方案,主要是matrix运算。【需专项熟练 ...】
Ref: [Python] 02 - String
是const类型,immutability。
字符串操做:split() 比较经常使用。
输出到哪里:输出重定向
输出的格式:三种打印法
多行打印法:三个双引号
调试日志法:logging.XX
并行日志流:StreamHandler
正则表达式 - Regex,经常使用于文件筛选。
import re re.match(...).group(1)
done.
Ref: [Python] 03 - Lists, Dictionaries, Tuples, Set
很是相似C++ STL的思想。
(a) for循环:遍历一个链表
>>> [[x ** 2, x ** 3] for x in range(4)]
(b) map映射:遍历多个链表:【比 for循环 速度更快!但其实返回的是 iterator object】
>>> map(lambda x, y : x + y, [1, 3, 5, 7, 9], [2, 4, 6, 8, 10]) [3, 7, 11, 15, 19]
若是列表特别大,有必要借助文件流,那么如何操做? Goto: 文件IO【有必要搞清楚】
(a) next一步步pick up列表元素。
(b) 先yield各个元素; 再经过 next 来 pick up元素。
dict内容的 update:包含 "append" & "update" 的功能
D.update(D2)
间接遍历:(1)单独输出全部的key;(2)单独输出全部的value;(3)单独输出全部的(key,value);
直接使用 for keys in/not in dict 速度比自带的 has_key 要快!
对于sparse matrix的表达优点。
Tuples,不变性 immutability。
“集合数学运算” 是个好东西:List 与 set 的相互转换。
done.
Ref: [Python] 04 - os & sys module
获取:路径相关参数
判断:路径是否有效
搜索:文件夹层级数
提取:文件路径列表
筛选:文件有效路径
Ref: [Python] 05 - Load data from Files
(1) 安全打开 ----> (2) 逐行读取 ----> (3) 去杂质
(a) 二进制文件读取 ----> (b) txt到binary的互相转化
文件保存:pickle,json
问:如何结合yield处理大数据?
CSV <---- Pandas Lib
Image <---- PIL Lib
常见数据集格式:.mat, .npz, .data
train_test_split(...)
[Python] 06 - Modules --> Packages
模块的路径:sys.path.append()
模块的属性:__dict__
主程序模块:__main__,做为主文件启动时;reload(...) 时就是其余状况了呢。
from <范围> import <功能> as <别名>,三种逐级导入方式。
放在项目哪里?
如何设置内容?
如何动态调用?
done.
[Python] 07 - Statements --> Functions
常见 reserved words。
基本函数 --> 大函数返回小函数(工厂模式)--> 小函数改变外层大函数的变量。
传参问题:一个星号,两个星号。
键值参数:默认只初始化一次。
多异常的两种写法;
异常基类;
[Python] 08 - Classes --> Objects
[封装] 实例属性;私有属性;私有化原理。
[继承] 支持多继承,遵循从左到右的优先级顺序。
[多态] 父类做参数;鸭子类型。
类的加法:__add__
打印类:__str__
迭代类:__iter__, __next__
Index 类:__getitem__
done.
[Python] 09 - Multi-processing
线程建立
线程同步(锁)
GIL:Global Interpreter Lock --> 进程 cpython
三种队列可构成缓冲区、线程共享区
[Python] 10 - Concurrent: asyncio
网络爬虫 crawler。
服务器端响应 requests。
done.
《Python金融大数据分析》
《Python高性能编程》
[Advanced Python] 11 - Implement a Class【OOP抽象过程】
[Advanced Python] 12 - Transfer parameters【与 "C语言" 的交互】
[Advanced Python] 16 - Google style guide for programming【风格规范】
[Advanced Python] 13 - "Decorator": syntactic sugar 【一大特点】
[Advanced Python] 14 - "Generator": calculating prime【内存环保,但什么问题适合 generator?】
[Advanced Python] 15 - "Metaclass": ORM【高级实现ing】
[Optimized Python] 17 - Bottle-neck in performance【测度瓶颈】
[Pandas] 01 - A guy based on NumPy【矩阵和矢量计算】
End.