for循环的访问范围大小?

2024-10-03 23:22:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个简化的python代码,如下所示:

a = 100
x = 0
for i in range(0, a):
    x = x +  i / float(a)

有没有办法访问for循环中的最大迭代量?你知道吗

基本上,代码将更改为:

x = 0
for i in range(0, 100):
    x = x + i / float(thisloopsmaxcount)

其中thisloopsmaxcount是一些奇特的python方法。 另一种选择是为这种行为实现一个完整的类。你知道吗


Tags: 方法代码inforrangefloat办法thisloopsmaxcount
3条回答

在您的示例中,您已经知道迭代的次数,所以为什么不使用它呢。你知道吗

但是一般来说,如果您想知道(python3)range()中元素的数量,可以使用它的^{}

x = 0
rang = range(12,999,123)
for i in rang:
    x = x +  i / float(len(rang))

您仍然需要临时变量,因为知道长度的不是循环本身,而是range对象。len()也适用于python2的^{}。你知道吗

没有任何内置功能,但您可以自己轻松计算:

x = 0
myrange = range(0, 100)
thisloopsmaxcount = sum(1 for _ in myrange)
for i in myrange:
    x = x + i / float(thisloopsmaxcount)

是的,你可以。。你知道吗

a = 100
x = 0
r = range(0,a)

for i in r:
    x = x + i / r.stop

但是如果范围不算1,2,3。。。那么stop将不是步数,例如range(10,12)没有12个步,而是有2个步。而且range(0,100,10)以十为单位计数,所以它没有100步。所以你需要适当地考虑(.stop - .start) / .step。你知道吗

而且它只适用于范围,一般来说,for循环可以是从网络中读取数据,或者是基于用户输入的数据,唯一知道循环何时停止和循环次数的方法是它何时到达终点。你知道吗

相关问题 更多 >