2014-01-27 31 views
1

好的,我需要将大写字母变成低字母,把低字母变成uppers,这很好,但我还需要从句子中删除第一个“i”字母和最后一个“i”字母。有任何想法吗?另外,如果输入文本中没有“i”字母,我该如何打印文本? 谢谢。带字符串的动作,python

这是我到目前为止有:

print("Write a sentence.") 
sentence = input() 

first = sentence.find("i") 
second = sentence.rfind("i") 

sentence.replace(first, " ") 
sentence.replace(second, " ") 

print(sentence.swapcase()) 
+0

尝试使用're.sub'。 – cdarke

回答

4

使用str.replacecount的说法,你只能删除ň子的occurence。

>>> sentence = 'Hello, This is string.' 
>>> sentence = sentence.replace('i', '', 1) # Replace the first occurence of `i` 
>>> sentence = sentence[::-1].replace('i', '', 1)[::-1] # reverse/replace/reverse 
>>> sentence.swapcase() 
'hELLO, tHS IS STRNG.' 

注意:str.replace工作区分大小写。以上代码只能删除小写字母i


使用str.joinstr.splitstr.rsplit替代。 str.*split接受可选maxsplit参数类似str.replace

>>> sentence = 'Hello, This is string.' 
>>> sentence = ''.join(sentence.split('i', 1)) 
>>> sentence = ''.join(sentence.rsplit('i', 1)) 
>>> sentence.swapcase() 
'hELLO, tHS IS STRNG.' 
+0

谢谢!这真的很有用。 – user3143730

+0

@ user3143730,我刚刚添加了一个替代方案。一探究竟。 – falsetru