Python 中的迭代考虑先前的输出值

问题描述 投票:0回答:1

我是Python新手,我想问这个问题:

我想编写一个代码,它会重复自己考虑到以前的值

例如,我们首先希望输出 100(:= 初始值,我们需要在循环内定义)和输入数字 x 之间的差值。因此,如果我们第一次为 x 指定值 5,则第一个输出为 95。我们希望第二个输出为 95 减去 新的 给定 x,因此,如果第二个 x 为 3,我们的第二个差值将是 95-3= 92 等等,直到例如差异将为 0。

如果这个例子有帮助,我很高兴能帮助您理解一般方法。

我想了解Python中具有这些特定特征的循环。如果这个简单的例子有帮助,我很乐意通过它获得理解。

loops iteration repeat
1个回答
0
投票

我发现这个想法很有趣,我想出了以下例子:

import itertools

def sub_to_zero(val):
    while val > 0:
        sub = (yield val)
        if sub is not None:
            val -= sub
    yield None

subs = itertools.cycle([5, 3, 2, 1, 2, 3, 4])
nums = sub_to_zero(100)

nums.send(None)
while True:
    x = nums.send(next(subs))
    print(x)

有关生成器和使用发送的一般信息:https://realpython.com/introduction-to-python-generators/#how-to-use-send

有关所需的奇特首字母

send(None)
的信息:使用生成器的发送方法。仍在尝试了解发送方法和古怪的行为

© www.soinside.com 2019 - 2024. All rights reserved.