Python 基本回合使用

Python basic round use

于是我上周开始学习编程,现在我自己都搞不定了。我需要最终答案是 "Size between 24 to 192." 但如果我四舍五入,它会给我 192.0.我需要更改什么?

minp = 23.75
maxp = 192.4
minp1 = round(minp, 0)
maxp1 = round(maxp, 0)
print("Size between " + str(minp1) + " to " + str(maxp1) + ".")

那是因为minp1maxp1的类型还是floats,可以改成 ints 通过将它们传递给 int(..) 构造函数:

minp = 23.75
maxp = 192.4
minp1 = <b>int(</b>round(minp, 0)<b>)</b>
maxp1 = <b>int(</b>round(maxp, 0)<b>)</b>
print("Size between " + str(minp1) + " to " + str(maxp1) + ".")

或在终端中:

$ python3
Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> minp = 23.75
>>> maxp = 192.4
>>> minp1 = int(round(minp, 0))
>>> maxp1 = int(round(maxp, 0))
>>> print("Size between " + str(minp1) + " to " + str(maxp1) + ".")
Size between <b>24</b> to <b>192</b>.

然而,自己做字符串 processing/concatenations 并不是一个好主意。你最好用 formatting string 格式化它,比如:

minp = 23.75
maxp = 192.4
minp1 = round(minp, 0)
maxp1 = round(maxp, 0)
print("Size between <b>%d</b> to <b>%d</b>."<b>%(minp1,maxp1)</b>)

这里%d代表“有符号整数十进制”。因此,通过使用格式,Python 将自己填充 %d 位置的变量,这很优雅并且不需要您考虑。

如果您想将数字保留为 float 并专门以整数格式输出:

def r(val):
    return "{0:.0f}".format(round(val))

minp = 23.75
maxp = 192.4
print("Size between {0} to {1}.".format(r(minp), r(maxp)))

结果:

Size between 24 to 192.