Python Tricks Part 1: Basis
这篇文章总结一些平时容易被忽略的 Python 知识 Primitives, Variables and Expressions print(f"{year:>3d} {principal:0.2f}") >3d 指至少 3 位十进制数,右对齐 0.2f 指精度为 2 位的浮点数 Arithmetic Operators round(x, [n]): 该函数采用 Banker’s Rounding 银行家舍入法,也叫 四舍六入五成双,当要舍弃的数字正好是 5 时 前一位是偶数 → 向下舍去(向偶数靠拢) 如果前一位是奇数 → 向上进位(向偶数靠拢) 这样做的目的是减少舍入误差的累积,在统计学和金融计算中更为公平。 # 常规四舍五入(Python实际行为是银行家舍入) print(round(1.5)) # 2 (1是奇数,5进位) print(round(2.5)) # 2 (2是偶数,5舍去) print(round(3.5)) # 4 (3是奇数,5进位) print(round(4.5)) # 4 (4是偶数,5舍去) # 更复杂的例子 print(round(1.25, 1)) # 1.2 (2是偶数,5舍去) print(round(1.35, 1)) # 1.4 (3是奇数,5进位) print(round(1.251, 1)) # 1.3 (因为后面还有1,不是正好5,正常进位) 银行家舍入法是 IEEE 754 标准推荐的方式,Python、R、NumPy 等都采用这种舍入方式,能有效减少大量数据计算时的统计偏差。 Python 二进制运算符会将整数视为 2’s complement binary representation 二进制补码,并且符号位会在左侧无限扩展。 此外,Python 不会截断二进制,也不会溢出。 ...