我知道the Python interpreter is a REPL。。。但在循环中,循环的“值”必须是单值的。。。对的但我看到了这一点(在Python 2.7.18和3.8.5中都使用range
而不是xrange
进行了测试):
>>> for _ in xrange(5):
... 3
...
3
3
3
3
3
这种行为在Python中记录在哪里?
在被调用函数中,它似乎被抑制:
>>> def foo(x):
... 1
... x
... return x+1
...
>>> foo(5)
6
>>> def bar(n):
... for x in xrange(5):
... 1
... x
... return n+1
...
>>> bar(5)
6
>>> for x in xrange(5):
... 1
... x
...
1
0
1
1
1
2
1
3
1
4
给下层选民注意:这不是一个明显的行为与Javascript的对比:
> for (var i = 0; i < 5; ++i) {
i
}
4
不是循环的“值”导致显示3。它是解释器在循环的每次迭代中计算
3.__repr__()
的结果例如,如果您改为计算
i
,您将得到以下结果如果希望for循环不显示任何内容,则需要确保在解释器中求值时循环中的所有语句都不会打印任何内容。这种说法的一个例子是
for循环没有“最终值”(与javascript示例不同)的原因是,在Python中for循环是语句,而Python中的语句没有值
你混淆了抽象的层次。每一句话都有它的价值。在循环的情况下,将行
3
解释五次,从而返回五个非空结果。交互式解释器每次打印该值要更清楚地看到它,请更改表达式:
解释器将打印出您刚刚输入的任何变量
这只是一个方便的功能
如果您在解释器中键入“3”,它也会打印出“3”
相关问题 更多 >
编程相关推荐