如果Python中有特殊字符,如何使用循环拒绝用户输入



我正在尝试用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('!@#$'):

相关内容

  • 没有找到相关文章