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 方法来支持加法运算。