python总结
环境:django,numpy,matplotlib,
解释语言:开发效率高,通用性强,内置方便的数据容器,易于扩展和嵌入。
语言:lua--嵌入式/网络/APP,erlang--嵌入式,python--网络/嵌入式,lisp--界面。
程序员境界:线性级,逻辑级,架构级,工程级
程序员陋习:自我,封闭,惯性,沟通障碍,一叶障目,工作量估计乐观,拒绝变化,拒绝重构。
笛卡尔方法论:拆分,排序,处理,归并。
项目管理:计划,组织,执行,控制。
数据类型:数值,字符串,纯性容器(list,tuple),hash容器(dict,set), none, 逻辑类型。
一个物理行使用多个逻辑行时用分号分开。
缩进:同层次语句相同缩进,不要混合使用空白和制表符,不同平台无法工作,建议一律使用4个空格。
lamda表达式,
函数:关键参数,文档字符串,闭包。
eval()
repr()
面向对象:类的实例化,类的封装,专用类,类属性,私有函数。
封装继承多态。
类的初始化:
Class a:
def __init__(self):
self.m=1
类的实例化:
c=a()
c.__class__
c.__doc__
type(c)
str(c)
与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是公有,完全取决于它的名字。如果一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的;其它所有的都是公有的。
try-except处理:
我们把所有可能引发错误的语句放在try块中,然后在except从句/块中处理所有的错误和异常。except从句可以专门处理单一的错误或异常,或者一组包括在圆括号内的错误/异常。如果没有给出错误或异常的名称,它会处理 所有的 错误和异常。对于每个try从句,至少都有一个相关联的except从句。
你还可以让try..catch块关联上一个else从句。当没有异常发生的时候,else从句将被执行。
模块与包:__init__.py,
文件操作:open,write,read,readlines,seek,os.listdir,os.walk。
python内置容器
1) 列表 List
定义
访问
切片操作
嵌套
内置函数
2) 元组 Tuple
定义
类似list的访问方式
不可变对象
类型转换
隐式tuple调用
数据交换
拆封与解封
3) 字典 Dict
字典的声明
简单使用
keys()和values()
排序问题及解决
4) 集合 Set
定义方式
set--唯一集合
演示合并功能
类型转换
5) map,reduce ,filter
6) 迭代器与生成器,协同和半协同:yield
并行的世界
n 串行与并行
n 阻塞与非阻塞任务
n 共享与冲突
n 多线程与多进程的区别和特点
多进程
n Linux、unix平台专属
n Fork
n wait
n Waitpid
n pipe和singal
n 守护进程
多线程
n Thread
n Threading
n 共享变量与临界资源
n 锁机制
python正则表达式
n 正则表达式的使用
n re.compile()
n 正则表达式介绍
n 贪婪模式和非贪婪模式
n re模块的其他工具
表达式对象:match,find,search。
元字符
一般字符
.除换行符的任意字符 DOTALL
\ 转义字符
[...] 字符集合
\d 数字:[0-9]
\D 非数字[^0-9]
\s 空白字符[<空格>\t\r\n\f\n]
\S 非空白字符[^\s]
\w 单词字符[A-Za-z0-9_]
\W 非单词字符[^\w]
匹配前一个字符0或者多次
+ 匹配前一个字符1次或者多次
? 匹配前一个字符0次或者1次
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m至n次
数量词? 变成非贪婪模式
边界
^ 匹配字符串开头,多行匹配每一行开头
$ 匹配字符串末尾,多行匹配每一行末尾
\A 仅匹配字符串开头
\Z 仅匹配字符串末尾
\b 匹配\w 和 \W 之间
逻辑、分组
| 左右表达式任意匹配一个, 先匹配左边一旦成功则跳过匹配右边,如果|没有包含在()中,匹配整个正则表达式
(...) 分组匹配,从左到右,每遇到一个 ( 编号+1 分组后面可加数量词
(?P<name>...) 除了分组序号外,指定一个 name的别名
\<number> 引用编号为<number>的分组匹配到的字符串
(?P=name) 引用别名为<name>的分组匹配到的串
特殊构造
(?:...) (...)不分组版本,用于使用 | 或者后接数量词
(?iLmsux) iLmsux的每个字符代表一个匹配模式,只能用在正则表达式的开头,可选多个
(?#...) #号后的内容将作为注释
(?=...) 之后的字符串内容需要匹配表达式才能成功匹配
(?!...) 之后的字符串不匹配表达式才能成功
(?<=...) 之前的字符串需要匹配表达式才能成功
(?<!...) 之前的字符串需要不匹配表达式才能成功
(?(id/name) yes |no) 如果编号为id/名字为name的组匹配到字符串,则需要匹配yes,否则匹配no,no可以省略
iLmsux
I re.I 忽略大小写
L re.L 使用预定字符类 \w \W \b \B \s \S 取决当前区域设定
m re.M 多行模式改变^ 和 $ 的行为
s re.S . 任意匹配模式
u re.U 使用预定字符类 \w \W \b \B \s \S \d \D 取决unicode定义的字符属性
x re.X 详细模式,可以多行,忽略空白字符,并且可以加入注释
re:
n re.compile(strPattern[, flag])
n pattern
n match
n search
n split
n findall
n finditer
n sub
Socket开发服务端
import socket
HOST = '127.0.0.1'
PORT =27001
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.bind((HOST,PORT))
s.listen(2)
conn,addr = s.accept()
print 'Connect by ',addr
while 1:
data = conn.recv(1024)
print data
if not data :break
conn.send(data)
conn.close()
socket开发客户端
import socket
HOST ='127.0.0.1'
PORT = 27001
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect((HOST,PORT))
s.send("hello")
data = s.recv(1024)
print repr(data)
s.close()
socket高级应用(非阻塞)
n select 通过select()系统调用来监视多个文件描述符的数组,当select()返回后,该数组中就绪的文件描述符便会被内核修改标志位,使得进程可以获得这些文件描述符从而进行后续的读写操作。 缺点在于单个进程能够监视的文件描述符的数量存在最大限制,linux默认1024。文件描述符数量的增大,其复制的开销也线性增长。
n poll 同select类似,但没有文件描述符的限制
n epoll 内核直接支持,基于事件就绪,注册和call back
django网站 的安装与配置
n easy_install django
n python setup.py install
n django_admin.py
n manager.py settings.py urls.py
MTV模式
n MVC模式 request,reponse,url.py,View.py,html。
django的命令 manage.py
n startnewapp
n syncdb
n runserver –noreload
n sqlrest
官方doc 的使用
n https://docs.djangoproject.com/en/1.4/
n 官方doc的结构
n search
TWISTED
n 一个基于事件驱动,异步的python高性能(?)网络开发框架
n 1核心
n http://twistedmatrix.com/trac/wiki
u Reactor
u Protocol
u Factory
python总结的更多相关文章
- Python中的多进程与多线程(一)
一.背景 最近在Azkaban的测试工作中,需要在测试环境下模拟线上的调度场景进行稳定性测试.故而重操python旧业,通过python编写脚本来构造类似线上的调度场景.在脚本编写过程中,碰到这样一个 ...
- Python高手之路【六】python基础之字符串格式化
Python的字符串格式化有两种方式: 百分号方式.format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存.[PEP-3101] This ...
- Python 小而美的函数
python提供了一些有趣且实用的函数,如any all zip,这些函数能够大幅简化我们得代码,可以更优雅的处理可迭代的对象,同时使用的时候也得注意一些情况 any any(iterable) ...
- JavaScript之父Brendan Eich,Clojure 创建者Rich Hickey,Python创建者Van Rossum等编程大牛对程序员的职业建议
软件开发是现时很火的职业.据美国劳动局发布的一项统计数据显示,从2014年至2024年,美国就业市场对开发人员的需求量将增长17%,而这个增长率比起所有职业的平均需求量高出了7%.很多人年轻人会选择编 ...
- 可爱的豆子——使用Beans思想让Python代码更易维护
title: 可爱的豆子--使用Beans思想让Python代码更易维护 toc: false comments: true date: 2016-06-19 21:43:33 tags: [Pyth ...
- 使用Python保存屏幕截图(不使用PIL)
起因 在极客学院讲授<使用Python编写远程控制程序>的课程中,涉及到查看被控制电脑屏幕截图的功能. 如果使用PIL,这个需求只需要三行代码: from PIL import Image ...
- Python编码记录
字节流和字符串 当使用Python定义一个字符串时,实际会存储一个字节串: "abc"--[97][98][99] python2.x默认会把所有的字符串当做ASCII码来对待,但 ...
- Apache执行Python脚本
由于经常需要到服务器上执行些命令,有些命令懒得敲,就准备写点脚本直接浏览器调用就好了,比如这样: 因为线上有现成的Apache,就直接放它里面了,当然访问安全要设置,我似乎别的随笔里写了安全问题,这里 ...
- python开发编译器
引言 最近刚刚用python写完了一个解析protobuf文件的简单编译器,深感ply实现词法分析和语法分析的简洁方便.乘着余热未过,头脑清醒,记下一点总结和心得,方便各位pythoner参考使用. ...
- 关于解决python线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- 不要伤害指针(5)--void和void指针详解
原文转载地址:http://blog.csdn.net/sunchaoenter/article/details/6587426 增加自己的想法,作为笔记. 1.概述 许多初学者对C/C++语言中的v ...
- JavaWeb核心编程之(三.2)Servlet配置
Servlet配置 1.配置Serlvet加载时机 2.配置多映射 配置加载时机 新建项目config->创建包com.xiaoan.config->创建类FirstServlet imp ...
- markdown流程图
markdown流程图 markdown流程图 markdown流程图语法:https://github.com/adrai/flowchart.js 定义元素阶段的语法是 tag=>type: ...
- mysql 与 mysqli的区别
mysqli.dll是PHP对mysql新特性的一个扩展支持.在PHP5中可以在php.ini中加载mysql后面的i,指improved, interface, ingenious, incompa ...
- 对web应用中单一入口模式的理解及php实现
在我们web应用的开发中,经常会听见或看见单一入口模式,在我开始学习tp框架的时候也不理解为什么要运用一个单一入口模式,只是会使用,最近自己在搞一个小东西的时候才明白为什么在web开发中要运用单一入口 ...
- QT中代码中与设计器中控件信号与SLOT连接(原来还可以这样连接)
双击testqt.ui 托一个push button到窗体中,双击,可以输入字符 按F4或 menu->edit->edit signals/slots 定义SLOT 选择已定义好的SLO ...
- Android使用VideoView播放网络视频
Android支持播放网络上的视频.在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP.这 两种协议最大的不同是,HTTP协议,不支持实时流媒体的播放,而RTSP ...
- uvalive5810 uva12368 Candles
题意:每组数据给出n个数,每个数在1-100,问组成这些数的蜡烛的权值的最小值.权值=把选的蜡烛从大到小排列组成的数 组成方式:比如有1 3两个蜡烛 可以组成13(1和3)或4(1+3) 只有一个加号 ...
- Data Visualization 课程 笔记2
2-D Graphics vector graphics : the graphics that used for drawing shapes with vertices, strokes and ...
- 【OpenCV新手教程之十二】OpenCV边缘检測:Canny算子,Sobel算子,Laplace算子,Scharr滤波器合辑
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接:http://blog.csdn.net/poem_qianmo/article/details/25560901 作者:毛星云(浅墨) ...