我有一个字符串需要在“!”之后大写:
我已经做了一个脚本,工作到一定程度,但给我一个问题,当最后一个字母是“!”。你知道吗
strin "hello! there!"
strout = []
for i in range(len(strin)):
if strin[i-2] == '!':
strout.append((strin[i]).capitalize())
else:
strout.append(strin[i])
strout[0] = strout[0].capitalize()
newStr = "".join(strout)
输出是:你好!在那里!你知道吗
如何防止第二个字母大写。[i-2]
的原因是每当循环遇到“!”在文本中间,它将字母i大写。你知道吗
一个简单的解决方案是只有在
i-2 >= 0
的情况下才将其资本化。你知道吗试试这个:
这个呢:
如果
i
是零或一,那么i-2
将分别映射到-2
和-1
。在Python中-1
表示最后一个元素。所以它将大写E
,正如您所注意到的。你知道吗从索引
2
开始可能更有意义:也就是说,在这里使用正则表达式可能更具声明性:
这将大写第一个字符,以及感叹号后面的所有字符,而不管中间有多少空格。你知道吗
相关问题 更多 >
编程相关推荐