以下是我目前的代码:
def down_data(h):
t = 0
while h > 0:
t += .0001
h = -4.9*t**2 + 1
v = g*t
yield h, v
return False
def up_data(v):
t = 0
h = 0
vel = v
while h < 1:
t += .0001
h = -4.9*t**2 - v*t
vel = -9.8*t - v
yield h, vel, t
我想做的是让我的
main()
函数在其有效期内输出down_data(1)
的值。运行这段不完整的代码只会设置一个无限循环,我不确定为什么。我试图将这两个函数组合在一起以模拟弹跳球,但由于yield函数的存在,将它们拼接在一起变得困难。我尝试创建一个
main()
函数并在其中运行while
循环,但这样会导致无限循环。以下是我尝试过的main()
:def main():
data = []
while down_data(1):
data.append(down_data(1))
print(data)
也许有更简单的方法来做到这一点吗? 我想要的
main()
函数应该是这样的:编辑:我也尝试了这个,但是同样的问题发生了; while循环没有关闭以移动到下一个
i
:def main():
data = []
for i in down_data(1):
while i[0] > 0:
data.append(i[0])
continue
print(data)
continue
返回到while
,而不是for
- 所以它是无用的。也许在最后一个例子中使用if
代替while
。 - furas