美文网首页
(5)python中的一些问题

(5)python中的一些问题

作者: 顽皮的石头7788121 | 来源:发表于2018-11-06 15:57 被阅读0次

        Python数据类型:

            数字、布尔值、字符串、

            元组(tuple )----一般用小括号表示一系列Python数据类型按照顺序组成的序列(1,‘abc’,0.4);

            列表——列表和元组在功能上类似,但是是中括号扩起来,同时列表中的数据可改变,元组中的不可以;

            字典——hashmap,key-vaule键值对,用大括号括起来{1:’abc’,’a’:0.1},键值对中的键无具体类型要求。、

        python  生成器和迭代器

            它是一个带状态的对象,他能在你调用next()方法的时候返回容器中的下一个值,任何实现了__iter__和__next__()(python2中实现next())方法的对象都是迭代器,__iter__返回迭代器自身,__next__返回容器中的下一个值,主要是在遍历容器。

            生成器其实是一种特殊的迭代器,它不需要再像上面的类一样写__iter__()和__next__()方法了,只需要一个yiled关键字。生成器一定是迭代器(反之不成立)

    例如:

    def fib():

       prev, curr = 0, 1

       while True:

            yield curr

            prev, curr = curr, curr + prev

    >>> f = fib()

    >>> list(islice(f, 0, 10))

    [1, 1, 2, 3, 5, 8, 13, 21, 34, 55]

            fib就是一个普通的python函数,它特殊的地方在于函数体中没有return关键字,函数的返回值是一个生成器对象。当执行f=fib()返回的是一个生成器对象,此时函数体中的代码并不会执行,只有显示或隐示地调用next的时候才会真正执行里面的代码。

    相关文章

      网友评论

          本文标题:(5)python中的一些问题

          本文链接:https://www.haomeiwen.com/subject/fpuuxqtx.html