Python数学函数:round取整、log对数、factorial阶乘详解

面向初学者的在线Python训练器

轻松学习Python,无需理论负担。在浏览器中直接解决带自动检查的实践任务,无需安装任何东西。

开始课程

Python数学函数详解:取整、对数、阶乘

在Python编程中,数值计算是数据分析和科学计算的核心。无论你是处理金融数据、开发机器学习模型,还是进行工程计算,掌握Python数学函数都能显著提升开发效率。这些函数不仅能简化代码,还能提高计算精度。

本文将深入解析Python中关键的数学运算。我们将探讨多种数值处理方法,并通过实际案例演示函数的具体应用。

math模块:数学计算的核心工具

Python内置的math模块提供了丰富的数学计算函数,是处理数值问题的必备工具。

import math

math模块的主要功能

math模块包含以下常用函数类别:

  • 三角函数(sin, cos, tan)
  • 双曲函数(sinh, cosh, tanh)
  • 取整函数(floor, ceil, trunc)
  • 对数函数(log, log2, log10)
  • 幂函数(pow, sqrt)
  • 数学常量(pi, e)

Python中的数字取整

round()函数:基础取整

round()函数用于将数字四舍五入到指定小数位数,是Python中最简单的取整方法。

number = 3.14159265
rounded = round(number, 2)
print(rounded)  # 输出:3.14

round()函数的调用格式:

round(number, ndigits)

参数说明:

  • number — 需要取整的数字
  • ndigits — 保留的小数位数(默认为0)

round()函数的特殊规则

round()采用"银行家舍入"规则。当小数部分恰好为0.5时,会向最近的偶数方向取整:

print(round(0.5))  # 输出:0
print(round(1.5))  # 输出:2
print(round(2.5))  # 输出:2

math.floor()和math.ceil():定向取整

math.floor()和math.ceil()提供明确的取整方向:

  • math.floor() — 向下取整(向更小的整数)
  • math.ceil() — 向上取整(向更大的整数)
import math

print(math.floor(3.7))   # 输出:3
print(math.ceil(3.7))    # 输出:4
print(math.floor(-3.7))  # 输出:-4
print(math.ceil(-3.7))   # 输出:-3

math.trunc():截断小数部分

math.trunc()直接截断小数部分,不做任何取整:

print(math.trunc(3.7))   # 输出:3
print(math.trunc(-3.7))  # 输出:-3

decimal模块:高精度取整

对于金融等需要精确计算的场景,推荐使用decimal模块。它能精确控制计算精度,避免浮点数误差。

from decimal import Decimal, ROUND_HALF_UP

value = Decimal('3.4567')
rounded_value = value.quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
print(rounded_value)  # 输出:3.46

decimal模块支持多种取整模式:

  • ROUND_HALF_UP — 四舍五入(0.5时远离零)
  • ROUND_HALF_DOWN — 五舍六入(0.5时趋向零)
  • ROUND_HALF_EVEN — 银行家舍入(0.5时取偶数)
  • ROUND_UP — 始终向上取整
  • ROUND_DOWN — 始终向下取整

博客

书籍推荐