2017-10-17 1 views
1

아래 코드는 "특수 문자 제거"만 출력합니다. 하지만 내가 떠날 경우 ("#") 아주 잘 돌아갑니다.파이썬 코드에서 복수 "또는"을 사용하는 방법

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 
관련 문제