python3 12位脚本每个数字相等三次击败他?

时间:2016-10-03 13:27:45

标签: python python-3.x

编写一个显示 12位的程序,

每个数字等于他之前数字的三倍。

我尝试像这样编码

a , b , c = 1 , 1 , 1

print(c)

while c < 12 :       # for looping

    c = c + 1        # c for counting

    b = a+b

    y = 3*b

    print(c,y)

任何人都可以帮我纠正结果

2 个答案:

答案 0 :(得分:0)

您可以使用power operator

from itertools import islice

def numbers(x, base=3):
    n = 0
    while True:
        yield x * base ** n
        n += 1

for n in islice(numbers(1), 12):
    print(n)

或者,如果你真的喜欢这样做,那么这是你的代码的固定版本:

b, c = 1, 0
while c < 12:
    print(c, b)
    b *= 3
    c += 1

答案 1 :(得分:0)

您可以从列表开始,其中第一个元素是倍数的开头:

- 以1或您喜欢的号码开头

multiples = [1]
for i in range(1, 12):
    multiples.append(3 * multiples[i - 1])

print(multiples)

- 产出:[1,3,9,27,82,243,729,2187,6561,19683,59049,177147]