如果 Python 中有特殊字符,如何使用循环拒绝用户输入
How to Reject User Input with Loop if it has Special Characters in 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('!@#$'):
我正在尝试在 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('!@#$'):