python 语句

来源:互联网 发布:三星note8双卡网络设置 编辑:程序博客网 时间:2024/06/07 17:11

1.循环

循环中常用的一些函数

1.range & xrange

2.enumerate return index&x

3.zip就是从多个列表中,依次各取出一个元素。每次取出的(来自不同列表的)元素合成一个元组,合并成的元组放入zip()返回的列表中

循环对象

1.循环对象包含一个next方法和StopIteration对象

相对于序列,用循环对象来控制循环的好处在于:可以不用在循环还没有开始的时候,就生成每次要使用的元素。所使用的元素在循环过程中逐次生成。

这样,就节省了空间,提高了效率,并提高编程的灵活性

range就是提前生成序列,而xrange则生成一个循环对象,还有如open等

2. iter()函数和循环器(iterator)
从技术上来说,循环对象和for循环调用之间还有一个中间层,就是要将循环对象转换成循环器(iterator)。这一转换是通过使用iter()函数实现的。但从逻辑层面上,常常可以忽略这一层,所以循环对象和循环器常常相互指代对方

3. 生成器(generator)
生成器的主要目的是构成一个用户自定义的循环对象。

方式:return位置改为yield

4.列表推到 list comprehension

表推导的机制实际上是利用循环对象

2.闭包

无参数的闭包

def line_conf():        b=15        def line(x):                return 2*x+b        return lineif __name__=="__main__":        b=12        my_line=line_conf()        print(my_line.__closure__)        print(my_line.__closure__[0].cell_contents)        print(my_line(5))

有参数的闭包(泛函)

def line_conf(a,b):        def line(x):                return a*x+b        return lineif __name__=="__main__":        line1=line_conf(1,1)        line2=line_conf(4,5)        print(line1(4),line2(4))

3.lamda函数

lamda函数也叫做匿名函数

好处在于:代码精炼,不必想名称,在有些位置lamda函数使代码更容易理解。

lambda tricks:

>>> fs=[(lambda n: i+n ) for i in range(10)]>>> for f in fs:...     f(3)... 12,12,12,12,12,12,12,12,12,12
改为

>>> fs=[(lambda n,i=i: i+n ) for i in range(10)]>>> for f in fs:...     f(3)... 3,4,5,6,7,8,9,10,11,12

4.内置函数

dir(__buildins__)即可打印出所有的内置函数

5.if else

def max1(a,b):    if a>b:        c=a    else:        c=b    return cdef max2(a,b):    c=a if a>b else b    return cdef max3(a,b):    c=[b,a][a>b]    return cdef max4(a,b):    c=(a>b and [a] or [b])[0]    return cif __name__=="__main__":    a, b, c = 1, 2, 3      print max1(a,b)    print max2(a,b)    print max3(a,b)    print max4(a,b)

6.for循环

for

else 在非break退出的情况下会执行else后面的语句,清晰明了





0 0