如何以列格式打印斐波那契数列

How do I print fibonacci numbers in a column format

我需要一些帮助,尝试按以下格式打印:

00: 0   
01: 1   
02: 1   
03: 2   
04: 3   
05: 5   
06: 8   
07: 13  
08: 21  
09: 34  
10: 55  

我的代码:

import math
import time

start_time = time.time()
golden_ratio = (1 + math.sqrt(5)) / 2

def  main():
    num = int(input("How many Fibonacci numbers should I print? "))

    for number in range(0,num+1):
        val = (golden_ratio**number - (1 - golden_ratio)**number) / math.sqrt(5)
        print(format(round((val)),'3d'))

main()
import math
import time

start_time = time.time()
golden_ratio = (1 + math.sqrt(5)) / 2

def  main():
    num = int(input("How many Fibonacci numbers should I print? "))

    for number in range(0,num+1):
        val = (golden_ratio**number - (1 - golden_ratio)**number) / math.sqrt(5)
        print('{}: {:.0f}'.format(number, val))

main()
import math
import time

start_time = time.time()
golden_ratio = (1 + math.sqrt(5)) / 2

def  main():
    num = int(input("How many Fibonacci numbers should I print? "))

    for number in range(0,num+1):
        val = (golden_ratio**number - (1 - golden_ratio)**number) / math.sqrt(5)
        print(format(number, '02d'), ': ', format(round((val)),'3d'))

main()
def  main():
    stnum = input("How many Fibonacci numbers should I print? ")
    dig = len(stnum)
    num = int(stnum)

    for number in range(0,num+1):
        val = (golden_ratio**number - (1 - golden_ratio)**number) / math.sqrt(5)
        #print(format(round((val)),'3d'))    
        print(f"{number:0{dig}d}: {val:.0f}")

dig是斐波那契数额的位数:如果求100个斐波那契数,dig就是3。我用formatted string literals(可用自python 3.6) 格式化输出。
{number:0{dig}d} 打印整数 numberdig 前导 0。
{val:.0f} 打印一个点后没有数字的浮点数。

如果您有旧版本的 python 并且格式化的字符串文字不可用,请将打印语句替换为:

print("{}: {:.0f}".format(str(number).zfill(dig), val))