首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘一个数列- Python2.x

乘一个数列- Python2.x
EN

Stack Overflow用户
提问于 2015-10-21 18:25:04
回答 4查看 2K关注 0票数 1

我为初学者的问题道歉,我在自学。我做了一些搜索,只找到了因式分解。我要找的是,给定一个范围(2,10),把所有这些数字乘以:

在上面的2-10示例中,我们会看到这样的情况:

2*1=2 2*2=4 ..。 3*1=3 3*2=4

..。

等等,直到你看完你的名单。

我所拥有的:

代码语言:javascript
复制
def product(number):
    for i in range(2,10):
        return number * i

for number in range(2,10):
    print product(number)

这似乎只适用于我的两个案子。所以我得到了18,它不会返回,移动到下一个整数。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-10-21 18:34:38

正如其他人指出的那样,您在第一次迭代时返回值,因此您的循环永远不会被检出。

您可以像注释中所建议的那样,以generator的形式这样做,也可以简单地返回包含列表理解的值列表:

代码语言:javascript
复制
def product(number):
    return [number * i for i in range(2, 10)]

当然,在这种情况下,您可以放弃这个函数,但这不是问题所在。

票数 0
EN

Stack Overflow用户

发布于 2015-10-21 18:33:24

这是因为在您完成您的产品()函数的循环之前,您将返回。

代码语言:javascript
复制
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))
票数 0
EN

Stack Overflow用户

发布于 2015-10-21 18:36:37

代码语言:javascript
复制
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方法,您可以看到所乘的是什么以及结果。

然而,正如其他人所指出的,发电机是一种更好的方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33266577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档