如何不使用capitalize、upper函数实现单词首字母大写且不修改内部字符
功能修复方案
你两次代码出现异常的核心原因是Python的str.replace()方法默认会替换字符串中所有匹配的子串,你只需要修改首字符,完全不需要调用replace方法操作整个单词。
修正逻辑很简单:将处理后的大写首字符,和原单词从第二个字符开始的剩余部分直接拼接即可,剩余部分可以通过切片word[1:]直接获取,不会改动原有内容。
修正后可正常运行的代码如下:
sentence = str(input("Enter a sentence:")) sentence = sentence.split() new = [] for word in sentence: first_char_ord = ord(word[0]) # 首字符为小写英文字母的处理逻辑 if 97 <= first_char_ord <= 122: # 大写首字符 + 原单词从第二位开始的所有内容 processed_word = chr(first_char_ord - 32) + word[1:] new.append(processed_word) else: # 首字母非小写的情况直接保留原单词 new.append(word) # 用空格拼接所有单词,避免末尾出现多余空格 print(" ".join(new))
功能验证
- 输入
helloh worldw,输出Helloh Worldw,符合预期 - 输入
test case a,输出Test Case A,符合预期 - 输入
Hello Java,输出Hello Java,首字母已大写的内容不会被修改
内容的提问来源于stack exchange,提问作者Peter
相关产品推荐
相关产品推荐

