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线上问题的几种有效技术
工作后好久没上博客园了,虽然不是很忙,但也没学生时代闲了.今天上博客园,发现好多的文章都是年终总结,想想是不是自己也应该总结下,不过现在还没想好,等想好了再写吧.今天写写自己在工作后用到的技术干货,争 ...
随机推荐
- Java 初始化字段方式和顺序
Java 初始化字段方式和顺序: 类加载时直接初始化静态字段; 类加载时调用静态方法初始化静态字段; 实例化对象时,在调用构造函数之前代码块中初始化字段; 实例化对象时,在调用构造函数之时初始化字段; ...
- Linux学习之telnet命令
telnet命令通常用来远程登录,telnet程序是基于TELNET协议的远程登录客户端程序,Telnet协议是TCP/IP协议族中的一员,是Internet远程登陆服务的标准协议和主要方式,它为用户 ...
- HTTP填坑
HTTP知识填坑 .note-content {font-family: "Helvetica Neue",Arial,"Hiragino Sans GB",& ...
- 关于ie6中使用css滤镜[_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/*.png',sizingMethod='scale')]后链接无法点击的问题
RT,我做的一个效果是试用png图做背景,通过_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='images/*.png' ...
- 重拾php---以及zend-studio 的使用快捷方式
感觉好久没有碰php了,今天心血来潮,重新入门.先整理一下刚刚学习的笔记. 一个字符串是用双引号括起来的一个词或一个句字,比如:“Hi,imooc!”.你可以用PHP语言输出把这个字符串输出,像这样: ...
- Delphi 的接口机制——接口操作的编译器实现过程(1)
学习COM编程技术也快有半个月了,这期间看了很多资料和别人的程序源码,也尝试了用delphi.C++.C#编写COM程序,个人感觉Delphi是最好上手的.C++的模版生成的代码太过复杂繁琐,大量使用 ...
- wpf中的触发器详解
原文 http://zwkufo.blog.163.com/blog/static/25882512009724113250883/ 7.1.2 简单逻辑的表示--触发器(1) 在本章的多处介绍中都会 ...
- Ubuntu下获取Nexus7的Root权限
一.准备 下载获取Root权限的工具包. 下载地址: http://downloadandroidrom.com/file/Nexus7/rooting/Nexus7Root.zip 二.解锁 Ubu ...
- Mysql查询优化随笔记录
select SQL_CALC_FOUND_ROWS * from (select * from oses_vehdata201606 union all select * from oses_ ...
- KVO和通知中心
苹果其实在语言层面为我们做了很多事,比如Category实现装饰模式的意图,target-action实现命令模式意图等等,对于观察者模式,苹果也提供了KVO和通知中心,给开发者提供了极大的便利. 观 ...