首页 > 解决方案 > 将数字渲染到 n 个可变位置

问题描述

尝试使用 {:.Nf} 打印渲染到输入小数位的 pi

尝试用输入的变量 n 替换变量 N。还将 N 替换为 {} 并将 n 分配给它。还将 n 替换为 {n}。

我确信答案是显而易见的,但我似乎看不到它。

from math import pi

# Example input() statement
n = int(input('Please enter an integer: '))

format_string = '{:.nf}'

# Replace this with your own print statement
print(format_string.format(pi))

期望 pi 到 n 位小数,但它正在返回:

“ValueError:格式说明符缺少精度”

我认为这意味着变量format_string的格式不正确。

标签: python

解决方案


将变量n放入格式字符串的一种方法是使用 f-string,它是在 Python 3.6 中引入的。f-string 允许n用它的当前值替换。但是,这需要大括号,并且您当前在代码中使用的大括号也将被解释为要替换变量。所以用双括号替换那些括号。

from math import pi

# Example input() statement
n = int(input('Please enter an integer: '))

format_string = f'{{:.{n}f}}'

# Replace this with your own print statement
print(format_string.format(pi))

当我运行它并输入值10时,我得到了打印输出

3.1415926536

如果您运行的是 3.6 之前的 Python 版本,请告诉我,我将向您展示如何使用format字符串的方法来获得相同的效果。


推荐阅读