如何根据用户输入使用类似变量的属性来操作数字输出
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
) 的字符串,然后在第二遍中使用它。
我正在根据 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
) 的字符串,然后在第二遍中使用它。