首页 > 解决方案 > 如何根据用户输入操作具有类变量属性的数字输出

问题描述

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

据我所知,Python 不允许数值输出改变:

结果 = 3.14159...

a = 50

b = 48

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

但是基于迭代次数,pi 火箭的精度,但对于少量迭代(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 的数字格式的工作方式,但我不知道如何将我想要用英语发生的事情翻译成脚本。

标签: pythonoutputnumeric

解决方案


python3.6+:

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

较旧的蟒蛇:

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

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


推荐阅读