Python 中如何把字符串转成大写或小写?
Python 大小写转换:upper() 转大写、lower() 转小写、capitalize() 首字符转标题大小写、其余转小写、title() 每个单词首字母大写、casefold() 更彻底的小写比较。本文汇总各种方法。
转大写用 s.upper(),转小写用 s.lower()。两者都返回新字符串,不修改原字符串。
常用方法一览
s = "hello world"
s.upper() # "HELLO WORLD"——全部大写
s.lower() # "hello world"——全部小写
s.capitalize() # "Hello world"——首字符转 titlecase,其余小写
s.title() # "Hello World"——每个单词首字母大写
s.swapcase() # "HELLO WORLD"——大小写互换
大小写不敏感的比较
已知ASCII场景可用 lower;通用 Unicode 无大小写比较通常用 casefold()——它对 Unicode 的处理更彻底(如德语 ß 会被转成 ss):
"Straße".casefold() == "STRASSE".casefold() # True
Unicode 转换可能改变长度(如 ß 转大写为 SS),swapcase() 两次不保证回到原文;是否规范化还需按业务要求处理。
判断当前大小写
"ABC".isupper() # True
"abc".islower() # True
isupper()/islower() 要求至少有一个有大小写的字符,且所有此类字符符合条件;数字或标点并不必然使结果为 false。
常见问题(FAQ)
Q:upper() 会修改原字符串吗?
A:不会。字符串不可变,所有转换方法都返回新字符串。
Q:只想让句首大写用什么?
A:s.capitalize()——注意它会把其他字母都变小写,"hELLO".capitalize() 得到 "Hello"。
Q:title() 处理缩写有问题吗?
A:有。"they're".title() 得到 "They'Re"——它把撇号当单词边界。对文本质量要求高时用正则或 nltk 等库。