栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

3d开奖号码(3d走势图)

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

3d开奖号码(3d走势图)

参考书目:《intermediate Python》原书地址

文章目录

前言一、可迭代对象二、迭代器三、迭代四、生成器

(1)基本概念(2)next()函数(3)生成器使用场景(4)可以迭代的数据类型举例


前言

首先介绍可迭代对象、迭代器和迭代三个概念。
然后介绍生成器。


一、可迭代对象

可迭代对象就是能提供迭代器的任意对象。

    定义了可以返回⼀个迭代器的__iter__方法定义了可以支持下标索引的__getitem__方法

满足以上其中一点的,都可以称为可迭代对象。

二、迭代器

只要满足一下条件中的一个就可称为迭代器:

    定义了next方法;(Python 2 版本)定义了__next__方法;
三、迭代

使用循环来遍历某个数据结构时
这个过程本身就叫迭代。

四、生成器 (1)基本概念

只能对其迭代⼀次的一种迭代器
在运行时生成值,并没有在内存中
生成器一般以函数实现,或者使用for循环
举个简单的例子:

def Generation_Function():
    for i in range(10):
        yield i
for item in Generation_Function():
    print(item)

输出结果是:

0
1
2
3
4
5
6
7
8
9
(2)next()函数

Python内置函数
获取⼀个序列的下⼀个元素

(3)生成器使用场景

当你计算机同时算出来大量结果时候
为避免浪费资源
函数将返回生成器而不是列表
例子:生成斐波那契数列
生成器 “生出” a的值,然后用next()函数进行迭代显示。

def fibon(n): 
    a = b = 1 
    for i in range(n): 
        yield a 
        a, b = b, a + b
gen = fibon(50)
while True:
    print(next(gen))

展示前面若干个看一下:

1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229

最后面报个了迭代异常:
这个异常告诉我们,所有的值都已经被yield完了。

---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
C:UsersADMINI~1AppDataLocalTemp/ipykernel_13688/2986638918.py in 
      6 gen = fibon(50)
      7 while True:
----> 8     print(next(gen))

StopIteration: 
(4)可以迭代的数据类型举例

可迭代对象并不能直接就用next()函数迭代
先生成迭代器,然后再用next()
举例子:

string = "My name is Jianlu."
while True:
    print(next(string))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
C:UsersADMINI~1AppDataLocalTemp/ipykernel_13688/1397137853.py in 
      1 string = "My name is Jianlu."
      2 while True:
----> 3     print(next(string))

TypeError: 'str' object is not an iterator

如何使字符串变量能进行迭代呢?
使用内置方法:iter()。

string = "My name is Jianlu."
string = iter(string)
while True:
    print(next(string))

M
y
 
n
a
m
e
 
i
s
 
J
i
a
n
l
u
.
---------------------------------------------------------------------------
StopIteration                             Traceback (most recent call last)
C:UsersADMINI~1AppDataLocalTemp/ipykernel_13688/3526468760.py in 
      2 string = iter(string)
      3 while True:
----> 4     print(next(string))

StopIteration: 
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/772546.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号