python学习
2016-08-20 13:14:21 0 举报
AI智能生成
Python 学习, 廖雪峰
作者其他创作
大纲/内容
指导
阶段
能写50行内的代码
能写100行内的代码
方法
案例项目收集
博客整理
python编程时光 gitHub
python__实例
安装python 3.5
python学习
文本分析
jieba分词
停用词,用户词典
词频统计
Gensim
常用模型
scikit-learn
人工智能
数据文本操作
python 读写Excel
Python-mysql
python-manggo
爬虫
静觅爬虫教程
爬虫思路
爬虫简易教程
Beautifulsoup
实例
多线程操作
其他
其他
正则匹配
自动化测试
大数据&机器学习
机器学习
交易量化
基础知识相关
基础
hello world
print ("hello world")
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
点击直接运行
中文编码
注释方法
调试写法:
输入/输出
name=input()
print (name)
数据类型
字符与编码
格式化
列表[list]&元组(tuple)
条件判断语句
循环
字典{dict},set[],
函数
基础
调用函数
Fn(x)
定义函数
def Fn(x):
参数
位置参数
power(x,n)
默认参数
power(x,n=2)
可变参数
calc(*numbers)
关键字参数
person(name,age,**kw)
命名关键字参数
person(name,age,*,city,job)
参数组合
f1( a,b,c=0,*args,**kw)
f2(a,b,c=0,*,d,**kw)
递归函数
汉洛塔游戏
高级特性
切片
迭代
for key in d.key()
for value in d.values()
for k, v in d.items()
检查是否可迭代
Iterable
list变成索引-元素对
enumerate
列表生成
list(range(1, 11))
[x * x for x in range(1, 11)]
[m + n for m in 'ABC' for n in 'XYZ']
[s.lower() for s in L]
生成器&迭代器
生成器:generator
yield
迭代器
Iterator
iter():可以使用内建函数iter()来获取它的迭代器对象
高阶函数
序列计算:map
累计计算:reduce
过滤:filter
素数序列
排序
reverse:反向排序
其他
返回函数
闭包
匿名函数:lambda
装饰器:
一个完整的decorator的写法如下:
针对带参数的decorator:
偏函数
functools.partial(int, base=2)
模块
标砖模块
私有变量&函数
安装第三方模块
面向对象的编程
基础
类:class
class Student(object):
__init__
实例:Instance
bart = Student()
数据封装
访问限制
继承&多态
isinstance():判断一个实例是否是一个数据类型的子类
type():获取对象消息
dir():获取一个对象的全部属性&方法
len函数会自动调对象的__len__方法
实例属性&类属性
进阶
给实例绑定属性值&方法
限制实例属性:__slots__
把一个方法变成属性调用:@property
多重继承:Mixin
定制类
__slots__:作用于len()函数
__str__:作用于打印名称
__repr()__:返回程序调试的消息
__iter__:作用于for...in 循环
__getitem__:作用于__取出特定下标的...
__getattr__:动态返回一个属性
作用:写api
__call__:直接在实例本身上调用属性与方法
callable:断一个对象是否是“可调用”对象
枚举类:Enum
元类
type()
metaclass
案例:ORM
先定一个表格操作数据库
调用类
定义Fieldb保存字段名与字段类型
在Field的基础上,定义各种类型
编写最复杂的ModelMetaclass
基类model
错误处理
try: except : finally:
错误类型
抛出错误:raise
调试
print()
断言:assert
断言相等
断言为空
特定错误
记录错误logging
pdb
pdb.set_trace()
单元测试
要被测试的类
测试类:unittest
运行单元测试
setUp与tearDown
文档测试
I/O
读取
f = open('/Users/michael/test.txt', 'r')
utf-8:r
二进制:rb
传入encoding参数
f = open('/Users/michael/gbk.txt', 'r', encoding='gbk')
f.read()
read(size)
read(line)
f.close()
保证一定关掉
写入
f = open('/Users/michael/test.txt', 'w')
上下文协议
f.write('Hello, world!')
f.flush()
在不关闭文件的情况下提交内容
f.close()
保证一定关掉
stringIO
f = StringIO('Hello!\nHi!\nGoodbye!')
ByteIO
f = StringIO('Hello!\nHi!\nGoodbye!')
操作文件&目录
常用函数
操作函数
重命名:os.rename('test.txt', 'test.py')
删除文件:os.remove('test.py')
判断是否为
目录:os.path.isdir('E:\\book\\temp')
文件:os.path.isfile('E:\\book\\temp')
shutil: 可以看做os的补充
序列化:pickle
对象序列化
pickle.dumps()
pickle.dump()
反序列化:pickle.loads()
对象转JSON
json.dumps(d)
json.loads(json_str)
class转JSON
进程&线程
进程:procese
multiprocessing
pool
子进管理g:subprocess
进程通信
分布式进程
Master端
Worker端
线程:Thread
线程锁:lock
线程锁2:ThreadLocal
正则表达式
基础
re.match与re.search的区别
切分字符串:re.split
分组:m.group(2)
贪婪匹配
```
0 条评论
下一页