Skip to main content
 首页 » 编程设计

python之Python中句子的大写

2025年05月04日16think

我正在修改一个简单的代码,但我似乎无法理解它。

我想让用户以句子的形式在提示中输入一个字符串。例如:

hey. how are you? the c.i.a. is watching! lol.  

它返回:

Hey. How are you? The C.I.A. Is watching! Lol. 

所以它的要求是:

  1. 如果字符串是字母,则首字母大写
  2. 在每个句点、问号或感叹号后大写
  3. 如果字母后面有句点且前面没有字母,则将字母大写

目前我只有

def fix_capitalization(): 
s = raw_input("Enter string: ") 
if s[0:1] == 'a' < [char] < 'z':  
    capitalize(s) 

我将如何做到这一点的思考过程如下

Capitalize(s) 将第一个字母大写,然后遍历字符串,如果有句点、问号或感叹号,则下一个字母将大写。如果句点前有一个字母且句点前有两个字符,则将句点前的字母大写。

请您参考如下方法:

下面的代码符合您的 3 条规则。但我认为你的规则并不完整。 'is' 中的字符 'i' 符合规则 2,但不应大写。

import re 
 
def uppercase(matchobj): 
    return matchobj.group(0).upper() 
 
def capitalize(s): 
    return re.sub('^([a-z])|[\.|\?|\!]\s*([a-z])|\s+([a-z])(?=\.)', uppercase, s) 
 
s = """hey. how are you? the c.i.a. is watching! lol. """ 
print capitalize(s) 

输出:

Hey. How are you? The C.I.A. Is watching! Lol.