1

ユーザーが入力した文字列を継続的に取得してから、文字または数字ではない文字を削除しようとしています。

私が開発した方法では、文字列を空白で分割し、各単語を分析して無効な文字を見つけます。

各単語の間にスペースを入れて単語をまとめるのに苦労しています。' '.join(list) を使用してみましたが、各文字または数字の間にスペースが入ります。

4

4 に答える 4

4

もちろん、@ 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
于 2013-07-06T20:03:20.990 に答える