我不是指特定的字符,我只是指任何不是字母数字的字符。我试过询问字符串是否只包含字母和数字字符,如下所示:
if userInput.isalpha() and userInput.isdigit() == False:
print ("Not valid, contains symbols or spaces")
但这不起作用,并且拒绝我放入的所有密码。
答案 0 :(得分:8)
首先,你不能只是alpha而且只能是数字,所以你的表达式总是假的。
其次,方法isalpha()
和isdigit()
等同于True
或False
,因此无需使用== False
。
我建议使用.isalnum()
。
如果这不符合您的要求,您应该使用正则表达式。
alnum
查找:https://docs.python.org/2/library/stdtypes.html#str.isalnum并在Python 3.x和2中运行。
示例:
>>> 'sometest'.isalnum()
True
>>> 'some test'.isalnum()
False
>>> 'sometest231'.isalnum()
True
>>> 'sometest%231'.isalnum()
False
>>> '231'.isalnum()
True
答案 1 :(得分:7)
你有三个问题:
if a and b == False
不同样是if a == False and b == False
; if b == False
应该写成if not b
;和str.isalnum
,无论如何都可以帮您解决问题。所以它应该是:
if not userInput.isalnum():