我为初学者的问题道歉,我在自学。我做了一些搜索,只找到了因式分解。我要找的是,给定一个范围(2,10),把所有这些数字乘以:
在上面的2-10示例中,我们会看到这样的情况:
2*1=2 2*2=4 ..。 3*1=3 3*2=4
..。
等等,直到你看完你的名单。
我所拥有的:
def product(number):
for i in range(2,10):
return number * i
for number in range(2,10):
print product(number)这似乎只适用于我的两个案子。所以我得到了18,它不会返回,移动到下一个整数。
发布于 2015-10-21 18:34:38
正如其他人指出的那样,您在第一次迭代时返回值,因此您的循环永远不会被检出。
您可以像注释中所建议的那样,以generator的形式这样做,也可以简单地返回包含列表理解的值列表:
def product(number):
return [number * i for i in range(2, 10)]当然,在这种情况下,您可以放弃这个函数,但这不是问题所在。
发布于 2015-10-21 18:33:24
这是因为在您完成您的产品()函数的循环之前,您将返回。
def product(number):
out = []
for i in range(2,10):
out.append(number * i)
return out
for number in range(2,10):
print(product(number))发布于 2015-10-21 18:36:37
def product(number):
for i in range (2, 10):
print("{} * {} = {}".format(i, number, (i * number)))
for n in range(2, 10):
product(n)这将执行相同的功能,但稍微干净一点。格式为python3.x,但它在2.x中工作。
通过使用.format方法,您可以看到所乘的是什么以及结果。
然而,正如其他人所指出的,发电机是一种更好的方法。
https://stackoverflow.com/questions/33266577
复制相似问题