2014-01-27 90 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