2017-10-17 19 views
1

我的下面的代码只打印“删除特殊字符”。但如果我只留下(“#”),它运行得非常好。如何在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

'或'是一个布尔运算符,而不是英语语法结构。您需要明确:单词中的'#'或单词中的'$'或单词中的'&'。 –

+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 
相关问题