字符串相等用==,内容一致返回True;禁用is(比较内存地址);空格大小写干扰需strip()和lower()预处理;判空推荐not s。

python中判断字符串是否相等,最常用、最推荐的方式是直接用 == 运算符。它比较两个字符串的内容是否完全一致(区分大小写、空格、标点等),返回布尔值 True 或 False。
使用 == 判断内容是否相等
这是标准做法,安全、直观、符合 Python 习惯:
-
"hello" == "hello"→True -
"Hello" == "hello"→False(大小写敏感) -
"abc " == "abc"→False(末尾空格不同)
避免用 is 判断字符串相等
is 比较的是对象的内存地址(即是否为同一对象),不是内容。虽然短字符串可能因字符串驻留(String interning)机制偶然返回 True,但结果不可靠:
-
"abc" is "abc"→ 可能为True(CPython 中小字符串常驻留) -
"abc" * 100 is "abc" * 100→ 很可能为False(长字符串通常不驻留) - 依赖
is判断相等容易出错,应始终用==
处理常见干扰:空格与大小写
实际场景中常需忽略首尾空格或大小写差异,可先预处理再比较:
立即学习“Python免费学习笔记(深入)”;
- 去空格:
s1.strip() == s2.strip() - 统一转小写:
s1.lower() == s2.lower() - 两者结合:
s1.strip().lower() == s2.strip().lower()
检查是否为空字符串
判断字符串是否为空,推荐用“真值测试”,简洁且高效:
-
if not s:→ 当s是""、None或其他假值时成立(注意:若s可能为None,需先确保是字符串类型,或用isinstance(s, str) and not s) - 明确检查空串:
s == ""也可,但略冗余 - 避免
len(s) == 0,不够 Pythonic
基本上就这些。记住核心原则:内容相等用 ==,身份相同才用 is;有格式干扰就先清理再比。