为下一个数字赋值

2024-10-01 02:32:39 发布

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

我需要给后面的数字赋值。代码如下所示:

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

下一级必须比上一级小一半。根有值1,下一级有值0.5,下一级有值0.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

Tags: 代码inforvaluevardefrange数字
3条回答

使用2**i的倒数:

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

请注意,在python2.x中,使用1./2**i而不是1/2**i非常重要,因为后者只返回一个整数,而不是您想要的浮点值。在python3中,或者在文件的开头使用from __future__ import division可以避免这个问题。你知道吗

一个简单的方法是:

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

你可以提高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

相关问题 更多 >