【发布时间】:2020-09-22 15:11:12
【问题描述】:
我有一个任务,无法找出真正的解决方案。
def triple(n): #multiplies number with 3
return (n*3)
def square(n):
return (n**2) #takes second power of number
for i in range(1,11):
if triple(i) > square(i):
print((f"triple({i})=={triple(i)} square({i})=={square(i)}"))
triple(1)==3 square(1)==1
triple(2)==6 square(2)==4
当一个值的平方大于该值的三倍时,我应该停止迭代,在最后一次迭代中不打印任何内容。
并且函数triple 和square 每次迭代都必须调用一次。
我尝试过的其他事情
ls =[f"triple({i})=={triple(i)} square({i})=={square(i)}" for i in range(1,11) if triple(i) > square(i)]
for i in ls:
print(i)
有一个测试可以检查我的答案,它说“打印行数错误”,我问过某人,他们刚刚告诉我,我应该将从每个函数获取的值存储到一个变量中。这些就是我试图按照他们所说的去做的事情
【问题讨论】:
-
是的,因为 Triple(3) 是 9,而 square(3) 是 9,在这种情况下你正在打破。如果您希望程序继续运行,请不要中断,简单。
标签: python function stopiteration