如何根据用户输入使用类似变量的属性来操作数字输出

How to manipulate numeric output with variable-like properties based on user input

我正在根据 Ramanujan 公式计算圆周率的位数,并且允许用户控制求和的迭代次数。我希望根据所需的迭代次数更改小数位数。

据我所知,

Python 不允许更改数字输出:

结果 = 3.14159...

一=50

b = 48

print('result = %a.bf' % result')

但是基于迭代次数,pi sky rockets 的精度,但对于少量迭代(1、2、...),不需要很多小数位。

我希望发生的事情如下:

while True:

   k = int(input("How many iterations do you want? "))

   num_digits = k * 10
   a = num_digits
   b = num_digits - 2

   result = calculate_pi(k)

   print('result = %a.bf' % result')
   .
   . 
   .

我知道这不是 Python 的数字格式的工作原理,但我不知道如何将我想要发生的英文内容翻译成脚本。

python3.6+:

print(f'result = %{a}.{b}f' % result)

年长 python:

print(('result = %%%d.%df' % (a, b)) % result) # %% is used to escape '%'
print('results = %{}.{}f'.format(a, b) % a)

在这两种情况下,我们的想法是首先创建一个包含您想要的正确占位符 (%X.Yf) 的字符串,然后在第二遍中使用它。