python每日笔记

 

9.28

查看python包路径:

sys.path

9.4  sorted高级用法:

>>> class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))
>>> student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
>>> sorted(student_objects, key=lambda student: student.age) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]

 

9.3 random的重要方法:

random.randint(1,10)  返回一个给定区间的整数

random.sample(seq, n)   随机返回序列中的N个值, 获取的值不重复!!

choice(seq) 从序列seq中返回随机的元素

random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。

random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。

random.randint()随机生一个整数int类型,可以指定这个整数的范围,同样有上限和下限值,python random.randint。

random.choice()可以从任何序列,比如list列表中,选取一个随机的元素返回,可以用于字符串、列表、元组等。

random.shuffle()如果你想将一个序列中的元素,随机打乱的话可以用这个函数方法。

 

9.2 itertools

http://python.jobbole.com/84206/

定义了一系列的方法,能帮助我们创建能够进行高效遍历迭代的迭代器,里面包含不少有意思并且有用的方法,比如像chainizip/izip_longestcombinationsifilter等等。

https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001415616001996f6b32d80b6454caca3d33c965a07611f000

 

9.1 lambda

用法:   f = lambda x:x+1,   x为变量即调用的时候传入的参数值f(x), 结果为x+1

    f = lambda : time.time(),  即生成一个函数,不需要传入参数, 返回time.time()

    lambda x:x+2(3), 直接返回5

    f = lambda x,y,z : x*y +z , 用f(1,2,3)来调用

 

8.31 python sorted的详细超好用用法:

http://www.jb51.net/article/57678.htm

http://www.cnblogs.com/sysu-blackbear/p/3283993.html

 

8.31 py2到py3的差别

 http://blog.csdn.net/samxx8/article/details/21535901

 

8.31 python 代码对象/编译  complie!!!

http://blog.csdn.net/u010786109/article/details/51504139

py2    funcA.func_code

py3    funcA.__code__

~~~~~

是否可以调用:

callable(dir)

callable('a')

 

 8.27继续:http://blog.csdn.net/orangleliu/article/details/8752058

 

8.26

经常看到 __all__ 变量再各种 __init__.py 文件中,谁能解释为什么那么做呢?

解答

它是一个string元素组成的list变量,定义了当你使用 from <module> import * 导入某个模块的时候能导出的符号(这里代表变量,函数,类等)。

举个例子,下面的代码在 foo.py 中,明确的导出了符号 barbaz

__all__ = ['bar', 'baz']

waz = 5
bar = 10
def baz(): return 'baz'

 

8.26

py2打印不换行 print x,

py3打印不换行,print(x,end='')

 

8.26

Python strip()函数: 只要s的开头或者结尾有RM里面的任何一个字母,就会一直删除下去,直到下一个字母不包含在RM中

s.strip(rm)        删除s字符串中开头、结尾处,位于 rm删除序列的字符

s.lstrip(rm)       删除s字符串中开头处,位于 rm删除序列的字符

s.rstrip(rm)      删除s字符串中结尾处,位于 rm删除序列的字符

注意:

1. 当rm为空时,默认删除空白符(包括'\n', '\r',  '\t',  ' ')

2. 

>>> a='123123ab1234123'
>>> a.strip('312')
'ab1234'

 

8.26

闭包: 如果在一个内部函数里,对在外部作用域(但不是在全局作用域)的变量进行引用,那么内部函数就被认为是闭包(closure).

def get1(a):
print(a)
def get2(b):
print('this is b: ', b)
return get2

s=get1(1) ##返回的是一个函数
s(22)

详解:

http://www.jb51.net/article/54498.htm

装饰器也是类似闭包的实现, 即通过返回一个函数来操作这个函数的签名

 

posted @ 2017-08-26 21:20  Python_ZEN  阅读(204)  评论(0编辑  收藏  举报