有没有办法查看字符串是否包含Python中的任何符号?

时间:2015-05-19 11:22:09

标签: python python-3.x

我不是指特定的字符,我只是指任何不是字母数字的字符。我试过询问字符串是否只包含字母和数字字符,如下所示:

if userInput.isalpha() and userInput.isdigit() == False:
    print ("Not valid, contains symbols or spaces")

但这不起作用,并且拒绝我放入的所有密码。

2 个答案:

答案 0 :(得分:8)

首先,你不能只是alpha而且只能是数字,所以你的表达式总是假的。

其次,方法isalpha()isdigit()等同于TrueFalse,因此无需使用== 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():