随学随用的python-note

Python笔记---------------[]

 

 

列表解析

>>> [(x,y) for x in range(3) for y in range(5)]

[(0, 0), (0, 1), (0, 2), (0, 3), (0, 4), (1, 0), (1, 1), (1, 2), (1, 3), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4)]

生成器表达式(每次只加载一个元素到内存里)

返回可迭代对象

 

多重继承

(新式类采用广度优先,经典类采用深度优先)

s = (1,2,[2,3])

i = s#前拷贝id(i) == id(s) s的改变会影响i

i = copy.deepcopy(s)  深拷贝

>>> d = [(x,y,z,a,v,c) for x in range(9) for y in range(9) for z in range(9) for a in range(9) for v in range(9) for c in range(9)] 暴力破解

Isinstance(s, str)判断s这个对象是不是’str’object

 

For i in range(10:

If i == 2:

Continue

Print i

 

Class Girl(human):

Def __init__(self, name, old):

Print ‘We are People’, name

Switch = {

‘-’:a-b,

‘+’:a+b

}

Print Switch.get(c,’Please input +-*/’)  #用字典的get这样不报错

 

>>> hello[:3:-1]

'dlrow o'

>>> hello[3:-1]

'lo worl'

>>> hello[4:]

'o world'

>>> 

 

S = 'abcdefghijk' 

for i in range(0,len(S),2): 

print S[i]   #小技巧

--------------------------------------------

L1 = [1,2,3,3]

L2 = [1, 2, 3, 4]

返回L1中的数值这个数值必须是L2中没有的。

Set(L1).difference(L2)     --------------------------------------------------------

 

enumerate()

利用enumerate()函数,可以在每次循环中同时得到下标和元素:

S = 'abcdefghijk'

for (index,char) in enumerate(S):    print index    print char

实际上,enumerate()在每次循环中,返回的是一个包含两个元素的定值表(tuple),两个元素分别赋予index和char。

with open(file) as myfile:

Print myfile.read() #不用再关闭myfile

------------------------------------------------

class num(object): 

def __init__(self, value): 

self.value = value 

def getNeg(self): 

return -self.value 

def setNeg(self, value): 

self.value = -value 

def delNeg(self): 

print("value also deleted") 

del self.value

  neg = property(getNeg, setNeg, delNeg, "I'm negative") 

 

x = num(1.1) 

print(x.neg) x.neg = -22 

print(x.value) 

print(num.neg.__doc__) 

del x.neg

装饰器可以对一个函数、方法或者类进行加工。

def decorator(F): 

def new_F(a, b):

  print("input", a, b) 

return F(a, b) 

    return new_F 

# get square sum 

@decorator 

def square_sum(a, b): 

return a**2 + b**2  #square_sum = decorator(square_sum)

Def func(formal_args, i = 0, *args, **kwargs):

print formal_args

print i

print args

print kwargs

以上是不带参数的装饰器

def Func1(F):

    def new_fun():

        print('func1')

        F()

    return new_fun

    

def Func21(F):

    def new_fun2():

        print('func2')

        F()

    return new_fun2

@Func1

@Func21

def Func4():

    pass

 

print(0b1110) # 二进制,以0b开头 

print(0o10) # 八进制,以0o开头 

print(0x2A) # 十六进制,以0x开头

环境配置$export PYTHONPATH=$PYTHONPATH:/home/vamei/mylib

 

安装非标准包

Python的标准库随着Python一起安装。当我们需要非标准包时,就要先安装。

(1)、使用Linux repository (Linux环境)

这是安装Python附加包的一个好的起点。你可以在Linux repository中查找可能存在的Python包 (比如在Ubuntu Software Center中搜索matplot)。

(2)、使用pip。pip是Python自带的包管理程序,它连接Python repository,并查找其中可能存在的包。

比如使用如下方法来安装、卸载或者升级web.py:

$pip install -i http://mirrors.aliyuncs.com/pypi/simple web.py$pip uninstall web.py$pip install -i http://mirrors.aliyuncs.com/pypi/simple --upgrade web.py

如果你的Python安装在一个非标准的路径(使用$which python来确认python可执行文件的路径)中,比如/home/vamei/util/python/bin中,你可以使用下面方法设置pip的安装包的路径:

$pip install -i http://mirrors.aliyuncs.com/pypi/simple --install-option="--prefix=/home/vamei/util/" web.py

 

str1 = ['21+23=', '32/8=', '32*12=']                                                     

e=[]

for s in str1:

    s2 = s + str(eval(s[:-1]))

    e.append(s2)

print(e)                                                                                  

posted @ 2015-09-21 07:18  @消失后  阅读(342)  评论(0编辑  收藏  举报