'%.*g' % (6,k) 在 python 中如何工作
How does '%.*g' % (6,k) work in python
我有以下代码:(Python 2.7)
k = 4535.65463456
out = '%.*g' % (6,k)
print str(out)
输出:4535.65
我无法理解 '%.*g' % (6,k)
的工作原理。由于我不熟悉这种语法,也不知道它叫什么,所以我什至无法 google 它。有人可以帮我解决这个问题吗?
提前致谢。
out = '%.*g' % (6,k)
这意味着它将打印 ,6 之后的数字;看着 '%。' %。 = 4535. ,然后打印 '.*g' , * = 6 , ',' 之后的数字,然后 g = 5 然后 6
之后的数字
使用 C 语言借用的语法 "%6g"
你可以告诉 python 显示最多六位数字的浮点数(如果数字不是太大的话)。
表示如果整数部分有4位,则用剩下的2位打印最高位小数部分
现在如果要参数化,我们必须生成格式字符串,这不是很方便,所以Python在这样的地方引入了参数化精度字符串。
'%.*g' % (6,k)
打印 k
,最多 6 位数字。
现在你会更好地使用 format
的 "new" 格式,它允许 "nested" 格式生成外部格式(因此不需要复杂的 .*
语法):
'{:.{prec}g}'.format(k, prec=6) # courtesy of Dan comment
这里prec
甚至不是一个特殊的关键字,只是作为函数关键字传递的参数名称。这就像:
'{:6g}'.format(k)
有一个专门用于 python 新旧样式格式的网站:https://pyformat.info/
(还有一个更新的语法 Python 3.6 格式字符串... https://www.python.org/dev/peps/pep-0498/)
我有以下代码:(Python 2.7)
k = 4535.65463456
out = '%.*g' % (6,k)
print str(out)
输出:4535.65
我无法理解 '%.*g' % (6,k)
的工作原理。由于我不熟悉这种语法,也不知道它叫什么,所以我什至无法 google 它。有人可以帮我解决这个问题吗?
提前致谢。
out = '%.*g' % (6,k)
这意味着它将打印 ,6 之后的数字;看着 '%。' %。 = 4535. ,然后打印 '.*g' , * = 6 , ',' 之后的数字,然后 g = 5 然后 6
之后的数字使用 C 语言借用的语法 "%6g"
你可以告诉 python 显示最多六位数字的浮点数(如果数字不是太大的话)。
表示如果整数部分有4位,则用剩下的2位打印最高位小数部分
现在如果要参数化,我们必须生成格式字符串,这不是很方便,所以Python在这样的地方引入了参数化精度字符串。
'%.*g' % (6,k)
打印 k
,最多 6 位数字。
现在你会更好地使用 format
的 "new" 格式,它允许 "nested" 格式生成外部格式(因此不需要复杂的 .*
语法):
'{:.{prec}g}'.format(k, prec=6) # courtesy of Dan comment
这里prec
甚至不是一个特殊的关键字,只是作为函数关键字传递的参数名称。这就像:
'{:6g}'.format(k)
有一个专门用于 python 新旧样式格式的网站:https://pyformat.info/
(还有一个更新的语法 Python 3.6 格式字符串... https://www.python.org/dev/peps/pep-0498/)