在 Python 中使用数字
除了核心算法以外,还可以对数字使用其他运算。 可能需要执行舍入或将字符串转换为数字。
在本模块的方案中,你希望接受来自用户的输入。 输入将是一个字符串而不是数字,因此需要将其转换为数字。 此外,用户输入的答案可能是负数,而你不想显示这些值。 你可能需要将答案转换为绝对值。 幸运的是,Python 为这些运算提供了实用程序。
将字符串转换为数字
Python 支持两种主要类型的数字:整数(或 int
)和浮点(或 float
)。 二者之间的主要区别在于是否存在小数点;整数是整值,而浮点包含小数值。
将字符串转换为数字时,需要指定要创建的数字的类型。 必须确定是否需要小数点。 使用 int
将转换为整数,而使用 float
将转换为浮点数。
demo_int = int('215')
print(demo_int)
demo_float = float('215.3')
print(demo_float)
215
215.3
重要
如果为 int
或 float
使用了无效的值,则会发生错误。
绝对值
数学中的绝对值是没有符号的非负数。 在不同情况下,使用绝对值会很有用,其中包括用于确定两个行星之间距离的示例。 请考虑下面的数学运算:
print(39 - 16)
print(16 - 39)
请注意,这两个方程之间的区别在于数字是相反的。 答案分别为 23
和 -23
。 在确定两个行星之间的距离时,数字的输入顺序并不重要,因为绝对答案是相同的。
使用 abs
将负值转换为其绝对值。 如果使用 abs
执行相同的操作(并输出答案),你会注意到这两个公式的结果都显示为 23
。
print(abs(39 - 16))
print(abs(16 - 39))
23
23
舍入
名为 round
的内置 Python 函数也很有用。 如果小数值大于 .5
,则使用它可向上舍入到最接近的整数;如果小数值小于 .5
,则使用它可以向下舍入。 如果十进制值等于 .5
,则函数将向上或向下舍入到最接近的偶数整数。
print(round(1.4))
print(round(1.5))
print(round(2.5))
print(round(2.6))
1
2
2
3
数学库
Python 中有一些库,可提供更高级的运算和计算。 最常见的一种是 math
库。 math
允许你使用 floor
和 ceil
执行舍入、提供 pi 的值以及许多其他运算。 让我们来看看如何使用这个库进行向上或向下舍入。
舍入数字让你能够去掉浮点的小数部分。 可以选择始终使用 ceil
向上舍入到最接近的整数,或者使用 floor
向下舍入。
from math import ceil, floor
round_up = ceil(12.5)
print(round_up)
round_down = floor(12.5)
print(round_down)
13
12