将值分配给下一个数字

时间:2015-04-15 15:13:54

标签: python list python-2.7 loops for-loop

我需要为下一个数字指定一个值。代码如下所示:

def numerujPoziomy():
    for i in range(0, liczbaPoziomow, 1):
        var = i + 1
        rootValue = 1
        y = rootValue
        print 'Level', var, 'value', y

每个下一个级别必须比之前的级别小一半。 Root的值为1,下一级的值为0.5,下一级的值为o.25等。我不知道该怎么做。

我的代码结果:

Level 1 value 1
Level 2 value 1
Level 3 value 1
Level 4 value 1
Level 5 value 1
Level 6 value 1

但我需要那个结果:

Level 1 value 1
Level 2 value 0.5
Level 3 value 0.25
Level 4 value 0.125
Level 5 value 0.0625
Level 6 value 0.03125

3 个答案:

答案 0 :(得分:1)

你可以将1/2增加到第i个力量。

liczbaPoziomow = 5

def numerujPoziomy():
    for i in range(0, liczbaPoziomow):
        print 'Level', i + 1, 'value',  0.5 ** i

numerujPoziomy()
>>> Level 1 value 1.0
>>> Level 2 value 0.5
>>> Level 3 value 0.25
>>> Level 4 value 0.125
>>> Level 5 value 0.0625

答案 1 :(得分:1)

您使用2**i的反转:

def numerujPoziomy():
    for i in range(0, liczbaPoziomow, 1):
        print 'Level', i+1, 'value', 1./2**i

请注意,在python 2.x中,非常重要的是你有1./2**i而不是1/2**i,因为后者只返回一个整数,而不是一个浮点数像你要的那样。在Python 3中避免了这个问题,或者在文件开头使用from __future__ import division

答案 2 :(得分:-2)

这样做很简单:

def numerujPoziomy():
    rootValue = 1.0
    for i in range(0, liczbaPoziomow, 1):
        var = i + 1
        y = rootValue / 2
        rootValue = y
        print 'Level', var, 'value', y
相关问题