You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python如何实现单词首字母大写且不修改数字后的小写字母

问题分析

Python内置的str.title()方法的判定逻辑是将单词中第一个出现的字母转为大写,其余字母转为小写,因此对于3g这类以数字开头的单词,会自动将后面紧跟的字母g转为大写,不符合业务需求。
你原有代码里的isinstance(word[0], str)判断是无效的,因为split后得到的每个元素都是字符串类型,word[0]永远是str类型,flag的判断逻辑完全起不到作用。

修改后代码
def solve(s):
    # 按单个空格分割保留原空格格式,避免多个空格合并的问题
    words = s.split(' ')
    result = []
    for word in words:
        if not word:
            result.append(word)
            continue
        # 仅当单词首字符是字母时做大写转换,其余情况原样保留
        if word[0].isalpha():
            result.append(word[0].upper() + word[1:])
        else:
            result.append(word)
    return ' '.join(result)

s = input()
print(solve(s))
验证效果
  • 姓名测试用例输入alison heck,输出为Alison Heck,满足护照姓名首字母大写要求
  • 异常测试用例输入'1 w 2 r 3g',输出为'1 W 2 R 3g',符合预期结果

内容的提问来源于stack exchange,提问作者user11147478

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 05:36:08