我是Python新手,我想问这个问题:
我想编写一个代码,它会重复自己考虑到以前的值。
例如,我们首先希望输出 100(:= 初始值,我们需要在循环内定义)和输入数字 x 之间的差值。因此,如果我们第一次为 x 指定值 5,则第一个输出为 95。我们希望第二个输出为 95 减去 新的 给定 x,因此,如果第二个 x 为 3,我们的第二个差值将是 95-3= 92 等等,直到例如差异将为 0。
如果这个例子有帮助,我很高兴能帮助您理解一般方法。
我想了解Python中具有这些特定特征的循环。如果这个简单的例子有帮助,我很乐意通过它获得理解。
我发现这个想法很有趣,我想出了以下例子:
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)
的信息:使用生成器的发送方法。仍在尝试了解发送方法和古怪的行为