Python 中如何把字符串转成大写或小写?

Python 大小写转换:upper() 转大写、lower() 转小写、capitalize() 首字符转标题大小写、其余转小写、title() 每个单词首字母大写、casefold() 更彻底的小写比较。本文汇总各种方法。

最佳实践
Python 中如何把字符串转成大写或小写?封面

转大写用 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 等库。

获取专属方案

联系我们

加入社区

微信扫码
加入官方交流群

立即体验

在线开通,按量计费,真正的云服务!

立即开始

选择观测云版本

代码托管平台