数学运算与数字处理篇

6.1 abs() 函数

abs() 是 Python 中的一个内置函数,用于返回数字的绝对值。对于正数,绝对值就是它本身;对于负数,绝对值是它的正数形式。

下面是 abs() 函数的一些使用示例:

# 对于正数
print(abs(10))  # 输出: 10

# 对于负数
print(abs(-10))  # 输出: 10

# 对于0
print(abs(0))  # 输出: 0

# 对于浮点数
print(abs(-3.14))  # 输出: 3.14

# 对于复数,abs() 返回复数的模(即它到原点的距离)
print(abs(1j))  # 输出: 1.0
print(abs(3 + 4j))  # 输出: 5.0

对于整数和浮点数,abs() 函数直接返回它们的绝对值。对于复数,abs() 函数返回的是复数的模,即它到复平面原点的距离,这是通过计算 sqrt(real^2 + imag^2) 来得到的,其中 real 和 imag 分别是复数的实部和虚部。

abs() 函数在多种情况下都非常有用,比如当你需要比较两个数的大小而不关心它们的符号时,或者当你需要计算一个数的正值时。

6.2 divmod()函数

divmod() 是 Python 的一个内置函数,它接受两个参数,通常是被除数和除数,并返回一个包含商和余数的元组。这个函数的名字是“divide and modulo”的缩写,它同时执行除法和取模两个操作。

以下是 divmod() 函数的使用示例:

# 使用divmod()函数
quotient, remainder = divmod(10, 3)

# 输出结果
print("商:", quotient)  # 输出: 商: 3
print("余数:", remainder)  # 输出: 余数: 1

在这个例子中,divmod(10, 3) 返回了一个元组 (3, 1),其中 3 是 10 除以 3 的商,1 是余数。

divmod() 函数通常用于需要同时获取商和余数的场景,比如在处理循环、分页、时间计算等场景中可能会用到它。

你还可以使用多个变量来同时接收 divmod() 函数的返回值,就像上面的例子那样。如果你只关心商或余数中的一个,你也可以使用下划线 _ 来忽略不需要的值:

# 只关心商
quotient, _ = divmod(10, 3)
print(quotient)  # 输出: 3

# 只关心余数
_, remainder = divmod(10, 3)
print(remainder)  # 输出: 1

在这个例子中,下划线 _ 被用作一个占位符,表示我们不关心这个特定的返回值。这是一种常见的 Python 编程约定,用于表示一个变量是临时的或不重要的。

6.3 pow()函数

pow() 是 Python 的内置函数,用于计算一个数的幂。这个函数接受两个参数:底数和指数,并返回底数的指数次幂的结果。

下面是 pow() 函数的一些使用示例:

# 计算 2 的 3 次方
print(pow(2, 3))  # 输出: 8

# 计算 5 的 2 次方
print(pow(5, 2))  # 输出: 25

# 计算 3 的 0 次方
print(pow(3, 0))  # 输出: 1,任何数的 0 次方都是 1

# 使用第三个参数来指定模数
# 计算 (2 的 3 次方) 对 5 取模的结果
print(pow(2, 3, 5))  # 输出: 3,因为 8 对 5 取模等于 3

pow() 函数还可以接受三个参数,第三个参数是可选的,表示模数(modulus)。当提供模数时,pow() 函数会计算 (底数 ** 指数) % 模数 的结果,这在需要计算大数的幂并希望结果在一个特定范围内时非常有用,例如在密码学中。

在 Python 3.x 中,** 运算符也可以用来计算幂,它是 pow() 函数的语法糖。例如,2 ** 3 就等同于 pow(2, 3),都会得到结果 8。

如果你想要计算浮点数的幂,pow() 函数同样适用:

# 计算 2 的 0.5 次方(即平方根)
print(pow(2, 0.5))  # 输出: 1.4142135623730951(接近根号 2 的值)

pow() 函数在处理大数和浮点数时非常有用,并且由于它是内置函数,因此执行速度通常很快。

6.4 round()函数

round() 是 Python 的内置函数,用于对浮点数进行四舍五入。你可以指定要保留的小数位数,如果不指定,则默认保留到最近的整数。

以下是 round() 函数的一些使用示例:

# 默认保留到最近的整数
print(round(3.14159))  # 输出: 3
print(round(2.71828))  # 输出: 3

# 保留指定的小数位数
print(round(3.14159, 2))  # 输出: 3.14
print(round(2.71828, 1))  # 输出: 2.7

# 对于刚好在中间的数,round() 会进行四舍五入
print(round(0.5))  # 输出: 1
print(round(-0.5))  # 输出: 0

# round() 也可以用于整数,但通常没有太大的意义,因为它不会改变整数的值
print(round(5))  # 输出: 5

在上面的例子中,round(3.14159, 2) 将 3.14159 四舍五入到两位小数,得到 3.14。同样地,round(2.71828, 1) 将 2.71828 四舍五入到一位小数,得到 2.7。

需要注意的是,round() 函数在处理刚好在中间的数(如 0.5)时,会采用标准的四舍五入规则:如果最后一位是 5 或更大,那么前面的数加 1(即四舍五入到最近的偶数)。这个行为有时被称为“银行家舍入”,因为它减少了累积误差。

round() 函数在处理财务和需要精确到特定小数位数的计算时非常有用。然而,对于需要更高精度或特殊舍入规则的应用,你可能需要使用其他库或函数。

6.5 sum()函数

sum() 是 Python 的内置函数,用于计算一个可迭代对象(如列表、元组或集合)中所有元素的和。当传递给 sum() 的可迭代对象包含数值时,它将返回这些数值的总和。

以下是 sum() 函数的一些使用示例:

# 计算列表中所有数字的和
numbers = [1, 2, 3, 4, 5]
total = sum(numbers)
print(total)  # 输出: 15

# 计算元组中所有数字的和
numbers_tuple = (10, 20, 30, 40)
total_tuple = sum(numbers_Tuple)
print(total_Tuple)  # 输出: 100

# 计算集合中所有数字的和
numbers_Set = {5, 15, 25, 35}
total_Set = sum(numbers_Set)
print(total_Set)  # 输出: 80

# 计算字符串中所有字符的 ASCII 码之和(不常见用法)
characters = "hello"
ascii_sum = sum(characters)
print(ascii_sum)  # 输出: 371,因为 'h' + 'e' + 'l' + 'l' + 'o' 的 ASCII 码之和是 371

# 计算列表中复杂数据类型的和(会引发 TypeError)
mixed_list = [1, 2, "3"]
try:
    total_mixed = sum(mixed_list)
    print(total_mixed)
except TypeError as e:
    print("Error:", e)  # 输出: Error: unsupported operand type(s) for +: 'int' and 'str'

在第一个例子中,sum() 函数计算了列表 numbers 中所有数字的和。在第二个和第三个例子中,它分别计算了元组和集合中所有数字的和。在第四个例子中,虽然不常见,但 sum() 函数也可以计算字符串中所有字符的 ASCII 码之和。

需要注意的是,如果可迭代对象中包含不能相加的类型(如数字和字符串混合),sum() 函数会抛出一个 TypeError 异常。

除了计算数值型数据的和之外,sum() 函数还可以与自定义的可迭代对象一起使用,只要这些对象定义了适当的 add 方法来支持加法运算。

  • 18
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊猫Devin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值