← Backend / Python / 基础专题

03_数字布尔值与运算

区分整数、浮点数、布尔值和常用运算符,能预测负数除法结果。

Python 基础专题 03:数字、布尔值与运算

学习目标:区分整数、浮点数、布尔值和常用运算符,能预测负数除法结果。

核心知识

int 表示整数,可写 1_000_000 提高可读性;float 表示二进制浮点数;bool 只有 True 和 False。type(value) 可查看类型。Python 整数没有固定 32 位上限,但超大整数仍消耗内存。None 表示没有值,判断时写 x is None。

print(7 / 2)    # 3.5,普通除法
print(7 // 2)   # 3,向下取整
print(-7 // 2)  # -4
print(-7 % 2)   # 1
print(2 ** 3)   # 8,乘方

比较运算符是 == != < <= > >=,可写 0 <= age < 120。逻辑运算符 and、or 会短路:左侧已决定结果时右侧不执行;not 取反。and 和 or 返回的是某个操作数,不保证是布尔值。bool("") 为假,bool("False") 为真,因为它是非空字符串。运算优先级不确定时加括号。

浮点数可能出现 0.1 + 0.2 != 0.3,这是二进制表示和舍入造成的。金额可用最小货币单位的整数或 decimal.Decimal("0.1");从字符串构造可避免先引入浮点误差。int("12") 能转换,int("12px") 会抛出 ValueError。

逐步理解

手算时先按括号、乘方、乘除取余、加减的顺序,再考虑比较和逻辑运算。-7 // 2 可理解为“不大于 -3.5 的最大整数”,所以是 -4。and 的短路可保护右边的危险操作,例如 items and items[0] 在空列表时不会索引越界,但返回的是空列表,不是 False。

动手练习

练习:计算 -8 // 3 和 -8 % 3。答案:分别为 -3 与 1,且满足 -8 == (-8 // 3) * 3 + (-8 % 3)。