使用打印和循环功能从1到99打印

时间:2017-07-11 19:15:58

标签: python python-3.x for-loop

我在Python 3.6的IDLE中尝试了以下内容

print(value for value in range(1,100))

在IDLE中生成一条消息

<generator object <genexpr> at 0x101b73a40>

我很困惑这意味着什么。我做错了什么?

3 个答案:

答案 0 :(得分:13)

(value for value in range(1,100))会生成generator个对象,如果您要打印list,只需将其打包在[]

print([value for value in range(1,100)])

或者你可以简单地

print(list(range(1,100)))

您可以阅读HERE

的生成器
  

返回生成器迭代器的函数。它看起来像一个普通函数,除了它包含yield表达式,用于生成一个在for循环中可用的值,或者可以使用next()函数一次检索一个值。

     

通常是指生成器函数,但在某些上下文中可能引用生成器迭代器。如果预期含义不明确,使用完整的术语可以避免含糊不清。

答案 1 :(得分:4)

print([value for value in range(1,100)])

您应该将其包含在列表[]中以生成值

答案 2 :(得分:0)

你想要的只是在这里使用列表理解,但你没有使用列表 它应该是

for i in range(1,100):
    print(i)

如果你仍想使用列表理解,它就像这样

[print(x) for x in range(1,100)]

这将给出类似

的输出
1
2
3
....
99
100
[None, None, None, ...97 times more]