2017-10-17 10 views
1

以下のコードは、「特殊文字の削除」のみを表示しています。しかし、私が去った場合( "#")、それは非常にうまくいく。複数の "or"をPythonコードで使用する方法

def name_character(word=input("Username: ")): 
    if ("#") or ("$") or ("&") in word: 
     return print ("Remove Special Character") 
    if word == "": 
     return print ("Enter Username") 
    else: 
     return print (word) 

(name_character()) 
+0

'or'ブール演算子ではなく、英語の文法構築物です。あなたは明示的にする必要があります:単語の '# '、単語の' $ '、単語の'& 'です。 –

+0

@MartijnPieters文字列を配列に入れてください: 'chars = ['#'、 '$'、 '&']' – ghovat

+1

@ghovat:はい、複製はさらに多くのオプションを提供します。私は、OPの試みがうまくいかなかった理由を指摘していました。 –

答えて

0

をあなたの比較は、この

のようにやや回転している場合( "#" または.....)

と#最初の比較で返されます。

は、それが動作する複数のか比較して、それを実行してください

def name_character(word=input("Username: ")): 
    if (("#") in word)or (("$") in word) or (("&") in word) : 
     return print ("Remove Special Character") 
    if word == "": 
     return print ("Enter Username") 
    else: 
     return print (word) 

(name_character()) 
+1

Rathanに感謝します。あなたの提案はうまく働いた – Albert

0

これを試してみてください:

>>> username = "foo#" 
>>> any(x in username for x in "#&$") 
True 
>>> username = "bar" 
>>> any(x in username for x in "#&$") 
False 
関連する問題