zoukankan      html  css  js  c++  java
  • 【飞谷六期】爬虫项目3

    PYTHON相关知识准备:

    1.yield

     在学代码的时候,发现很多函数的返回是用的yield关键字。这跟python中的迭代器和生成器有关。

    for line in open("test.txt"):   #use file iterators
        print line

    这样的代码是使用了迭代器的,每次读取一行,然后再读取下一行。

    迭代器跟生成器是联系在一起的,如果声明为yield,则函数以生成器的形式编译(??python不是解释性语言吗?怎么这里说编译?)

    >>> def g(n):
    ...     for i in range(n):
    ...             yield i **2
    ...
    >>> for i in g(5):
    ...     print i,":",
    ...
    0 : 1 : 4 : 9 : 16 :

    如上面的例子,g(n)函数不是一次性执行完的,而是得到一个值后,就暂停一下,然后输出,再得到下一个值,再暂停这样的。

    参考资料:http://www.cnblogs.com/tqsummer/archive/2010/12/27/1917927.html

    2.什么是*args和**kwargs

    def test(a,*args,**kwargs):
        print a
        #print b
        #print c
        print args
        print kwargs
    
    test(1,2,3,d='4',e=5)
    输出结果:
    1
    (2, 3)
    {'e': 5, 'd': '4'}

    从例子中可以看出,args是有名参数后面剩下的参数,kwargs在args之后表示成对键值对。

    参考资料:http://blog.sina.com.cn/s/blog_65a8ab5d0101fglm.html

    3.enumerate函数

    enumerate 函数用于遍历序列中的元素以及它们的下标

    >>> for i,j in enumerate(('a','b','c')):
     print i,j
     
    0 a
    1 b
    2 c
    >>> for i,j in enumerate([1,2,3]):
     print i,j
     
    0 1
    1 2
    2 3

    参考资料:http://blog.sina.com.cn/s/blog_a299c85e0101h3y4.html

  • 相关阅读:
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
    [Hibernate]
  • 原文地址:https://www.cnblogs.com/dplearning/p/4905177.html
Copyright © 2011-2022 走看看