- 締切済み
pythonの問題を解くのを助けていただきたいです
スペースが2つ以上ある場合スペースを一つだけにする、そして文の最初と最後にスペースがあった場合そのスペースを消すというコードをこのコードをベースに書き換えていただくことは可能でしょうか? def removeExtraSpaces(theString): outSt = "" foundExtraSpaces = False for ch in theString: if ch = " ": foundExtraSpaces = True elif foundExtraSpaces == True: outSt += ch return outSt print(removeExtraSpaces(" Hello Joe ")) #この場合”Hello Joe”と出力されるはずです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- redslove10
- ベストアンサー率41% (397/968)
回答1,2のやり方ですと3個以上の連続したスペースに対応できないので、正規表現で置換すると良いかと思います。 import re def removeExtraSpaces(theString): return re.sub('[ ]+', ' ', theString).strip(' ')
- type0(@type0)
- ベストアンサー率56% (344/611)
スペースが2つ以上ある場合スペースを一つだけにする が抜けてたので、↓ですね。 def removeExtraSpaces(theString): outSt = theString.replace(' ', ' ') return outSt.strip(' ') https://note.nkmk.me/python-str-replace-translate-re-sub/ https://uxmilk.jp/12804 が参考になると思います。 これらを使えば自前でロジックを組む必要が無くなります。
- type0(@type0)
- ベストアンサー率56% (344/611)
で、どうですかね。 def removeExtraSpaces(theString): return theString.strip(" ")