Вот мой исходный код:
def fibonacci_numbers():
how_many_numbers = int(input("\nHow many Fibbonacci numbers you want print: "))
i = 0
res = [0, 1]
while i < how_many_numbers:
res.append(sum(res[-2:]))
print("{}. {}".format(i + 1, res[i]))
i += 1
fibonacci_numbers()
Теперь вывод:
How many Fibbonacci numbers you want print: 30
1. 0
2. 1
3. 1
4. 2
5. 3
6. 5
7. 8
8. 13
9. 21
10. 34
11. 55
12. 89
13. 144
...
30. 514229
Но мне нужно что-то подобное:
How many Fibbonacci numbers you want print: 30
1. 0
2. 1
3. 1
4. 2
5. 3
6. 5
7. 8
8. 13
9. 21
10. 34
11. 55
12. 89
13. 144
...
30. 514229
и такна.Это зависит от числа, которое я выбираю.Если я беру 50 чисел, поэтому мне нужно больше пробелов, но все должно быть расположено справа.
Как мне этого добиться?
Я пытался с {:>width}
и с .rjust
метод, но я не могу его получить.
Есть ли простое решение для этого?
Или, может быть, мне нужно сделать еще один цикл и напечатать там?
Окончательное решение:
Спасибо за ответы.Я взял некоторые из них, и я сделал это:
def fibonacci_numbers():
how_many_numbers = int(input("\nHow many Fibbonacci numbers you want print: "))
i = 0
res = [0, 1]
while i < how_many_numbers:
res.append(sum(res[-2:]))
i += 1
size_of_i = len(str(i))
i = 0
for num in res[:-1]:
size = len(str(res[-2]))
print("{:<{width_of_i}} {:>{width}}".format(str(i)+":", num, width_of_i=size_of_i + 1, width=size))
i += 1
fibonacci_numbers()