dom*_*om0 11 python string formatting
如果我有例如x = 40我想要以下结果:
40"
Run Code Online (Sandbox Code Playgroud)
对于x = 2.5,结果应该是......
2.5"
Run Code Online (Sandbox Code Playgroud)
所以我基本上想要格式化到最多一个小数位.我目前使用这个:
"{0:0.1f}\"".format(x, 1)
Run Code Online (Sandbox Code Playgroud)
但这显示的只是一个小数位,这不是我想要的......
一种选择是类似的
"{0}\"".format(str(round(x, 1) if x % 1 else int(x)))
Run Code Online (Sandbox Code Playgroud)
x如果没有小数部分,它将显示为整数.这可能是一个更好的方法.
这是可重用的,可用于str、float、 或int,并将转换''为0:
def minimalNumber(x):
if type(x) is str:
if x == '':
x = 0
f = float(x)
if f.is_integer():
return int(f)
else:
return f
Run Code Online (Sandbox Code Playgroud)
与:
print "{}\"".format(minimalNumber(x))
Run Code Online (Sandbox Code Playgroud)
例子:
x = 2.2
print "{}\"".format(minimalNumber(x))
x = 2.0
print "{}\"".format(minimalNumber(x))
Run Code Online (Sandbox Code Playgroud)
哪些输出:
2.2"
2"
Run Code Online (Sandbox Code Playgroud)