ユーザーが入力した文字列を継続的に取得してから、文字または数字ではない文字を削除しようとしています。
私が開発した方法では、文字列を空白で分割し、各単語を分析して無効な文字を見つけます。
各単語の間にスペースを入れて単語をまとめるのに苦労しています。' '.join(list) を使用してみましたが、各文字または数字の間にスペースが入ります。
もちろん、@ Ashwiniの答えはこれよりも優れていますが、それでもループだけでやりたい場合は
strings = raw_input("type something")
while(True):
MyString = ""
if strings == "stop": break
for string in strings.split():
for char in string:
if(char.isalnum()): MyString += char
MyString += " "
print MyString
strings = raw_input("continue : ")
サンプルラン
$ python Test.py
type somethingWelcome to$%^ Python
Welcome to Python
continue : I love numbers 1234 but not !@#$
I love numbers 1234 but not
continue : stop
編集
Python 3 バージョン:
コメントで Ashwini が示しているように、文字をリストに保存し、最後に結合してリストを出力します。
strings = input("type something : ")
while(True):
MyString = []
if strings == "stop": break
for string in strings.split():
for char in string:
if(char.isalnum()): MyString.append(char)
MyString.append(" ")
print (''.join(MyString))
strings = input("continue : ")
サンプルラン:
$ python3 Test.py
type something : abcd
abcd
continue : I love Python 123
I love Python 123
continue : I hate !@#
I hate
continue : stop