我正在尝试用Python编写一个程序,用户可以在其中输入答案,如果答案少于5个字符或有一个特殊字符,如!、@、#、$,它应该被踢,然后用户再次尝试。
如果输入了(、(、*、&、^之类的内容,我就是不能!、@、#、$.
我想知道是否有人能比我可怜的谷歌搜索结果更好地为我解释。
感谢
这是我的代码:
while True:
print("Without entering any special characters !, @, #, $")
answer = input("Please enter an answer >= 5 characters: ")
if len(answer) >= 5:
print("Your answer was greater than or equal to 5 characters!")
print("Success!")
break
else:
print("Please read directions and try again.")
您可以使用any来确定answer
中的任何字符是否在['!','@','#','$']
中。
if len(answer) >= 5 and not any(i in ['!','@','#','$'] for i in answer):
像这样:
word='yaywords@'
badchars='!@#$'
if len(list(set(list(badchars)) & set(list(word)))) == 0:
'yay it worked'
您可以将答案中的字符集与设置的坏字符进行交集,以查看答案中是否有坏字符:
if len(answer) >= 5 and not set(answer) & set('!@#$'):