python 笔记

来源:互联网 发布:linux ssh配置企业应用 编辑:程序博客网 时间:2024/06/06 20:40
这个笔记就大致的记了一下一些基本的操作吧, 写的不是很全, 但是自己写了一遍, 感觉对于学python 还是很有帮助的, 但是还是想说,不管什么语言, 一定要多敲代码, 才能有所理解

赋值 
  x1, x2 = 1 , 2  
 x1,x2 = x2,x1 


type(xx)
返回类型


id(内存地址)


切片操作
xx[a:b:c] 
a 起始
b 结束
c 步长  ,c = -1  逆序输出




cmp(a, b)


repr() 或''  
str() 以字符串的方式获取对象的内容


eval() 重新获得对象


abs() 取绝对值
coerce() 数值转换


divmod(a,b)  -> 返回元组(a/b ,a%b) 


chr(x) 转为字符
unichr(x) 
otc(x)  8进制
ord(x) 转为整形


range([start,]stop,[step]) 注意 stop的值取不到
xrange()  生成一个 生成器
//  需导入random模块
randrange()
random()  返回0-1 之间的一个数
randint() 返回整型
uniform()   返回二者间的浮点数
choice()   随机返回给定序列的一个元素




input("sada:")   输入必须是合法字符,但输入数字时有自己的特性 like:'asdas'
raw_input("asdas:")   接受任何输入




序列关系操作符  in  / not in
se *xx  重复
se[x]   某元素
se[start :end]   元素集合
se1 + se2






list(iter)  可迭代对象转列表
tuple(iter) 可迭代对象转元组
len(seq)      返回seq的长度
max/min(iter , key = None ) 返回最大小值  ,如果指定key , key 必须可以传给iter
sum(iter , init = 0 )       总和
reversed(seq)  返回一个逆序的迭代器
sorted(iter  ,func = None , key = None ,reversed = False ) 


zip(it0 ,it1 ,it2.....)   打包, 返回多个列表, 每个it 的第i 个元素,组成第i个元组


string 的操作和列表相似, str() 
s.join (xxxx) ,在xxxx中插入s
s.split ('x') 以x 为分隔符 
* S.swapcase()  大小写转换
str 元素不可变
但可以通过排切片操作来达到删除、插入的目的
 s = '%sC%s' % (s[0:2], s[3:])
 list.exend()
 list.append() 


unicode 字符串操作
字符串操作 的函数较多,故省略
u'sdad' 


enumerate(x) 如果要对一个列表或者数组既要遍历索引又要遍历元素时


列表解析
[exp for xx in xaxsa]






字典{}
keys()
d.fromkeys(('x','y'),-1)  值一样
d.keys() 字典的键
 d.value () 
d.items() 
d.pop() 
dict()


集合  
set()   可变集合


frozenset()  不可变集合


s.add('asdsad') , 则加入一个asdsad 
s.update('sadas') ,如果有不同的字符则更新 s
|   联合 
&   交集
-   补集
^   对称差分
当然还有|= , -= 等
s.difference()
s.rmove()


迭代器  
iter()
iter(func , sexa)  #调用h函数 ,直至到sexa


生成器表达式


(exp  for i in xxx )




文件操作




f = open("file" ,'way')


f.seek(a, b )  b = 1 当前  = 0 头  =2 尾
f.tell()
for eachline in f.read()




命令行 
import sys
sys.argv   
import os : 跟系统有关的函数 
os.path
 os.path.expanduser()

 a.strip(xx)  删除开头结尾处的xx
 split()   分割


 filter()   过滤 






错误和异常
捕获所有异常  Exception , e  
try:
pass
except (Exception1,Exception2.....)[, e]:
raise
else:
pass
finally:
pass


raise   引发你自己的异常  
with  上下文管理
assert 断言






函数


def  xx(*tuple , **dict):
'I "m attribution'  
[return xxx]
函数可内嵌
装饰器


在某函数前 @另一个函数 , 相当于继承 
函数属性  
__doc__




函数的形式参数
可以传函数名
def www( args , argv , asdfd = 0 , bsad=1 ):
默认的参数放后面
可变长度的参数


def wwx ([form1_agrs] , *varg_tuple):


匿名函数 lambda  :exp a = lambda argc : expr


内建函数




filter(func , seq)用于过滤
  
  map(expr , seq )




  reduce()  like  func (func (a, b ) ,c) 




偏函数
from operator import add 
from functools import partial 


add1 = partial(add ,1)


全局变量  


global xxx   


闭包


def make_adder(addend):
    def adder(augend):
        return augend + addend
    return adder


p = make_adder(23)
q = make_adder(44)


print p(100)
print q(100)




生成器   
def asdas():
yield xxxx




模块 
import sys
sys.path.append('path')



 from xx import xxx as 
 from xx import *  导入所有的函数 但是不是很推荐




 可从.zip文件导入模块
 globals()
 locals() 




包import xx.xxx.xxx.xxxxx
from xx.x.xxx import xxxxxxx






执行环境 






callable(xxx)  看 xxx 是否可以用() 来调用 返回 True/False


compile(string , file|'' , type)  type = eval | exec | single
eval() 表达式求值 
single 是单一可执行语句
exec   多个
都用 exec 执行  
execfile()
exec()执行语句    
input("asdsad")


执行   
os.system()
os.popen() 可以返回文件对象 


os.fork() 
os.exec()


subprocess 


sys.exit)_ 


SystemExit 






正则
|  表示或  : foo|xxx  -> foo , xxx 
.  任何一个字符  .f ->  af ,tf ....
^ 匹配以xx开头的字符串  ^aaa ->aaad ,.....
$ .......结尾。。。。。  aaa$ -> daaa
\basd\b             asd  
\bss                 以ss开头
\Bss                 含有ss
[] 字符类
-指定范围
^否定
........
match() 
serch()
findall()  返回所有匹配的值
subn('x' , 'tihuanhou' , 'string ')   多返回 一个 次数
sub()  
split()
闭包操作符 * + ? {}(N次出现)




线程   threading sys


time.sleep(xx) xx 为秒数 


ctime   输出一个完整的信息 


以下为thread模块(最好不要用此模块) 
thread.start_new_thread (loop , () )


thread.allocate_lock() 分配锁对象
acquire()   获取对象
lock() 锁定
release() 解锁


threading模块 


Thread.start() 
run() 
join() 挂起进程, 直到线程结束
isAlive() 
isDaemon() 









0 0