如何测试字符串是否只包含空格?

字符串的例子:

" "(空格,空格,空格) " \t \n "(空格,制表符,空格,换行符,空格) "\n\n\ t\n"(换行符,换行符,制表符,换行符)


当前回答

检查字符串是否是空格或换行符

使用下面的简单代码

mystr = "      \n  \r  \t   "
if not mystr.strip(): # The String Is Only Spaces!
    print("\n[!] Invalid String !!!")
    exit(1)
mystr = mystr.strip()
print("\n[*] Your String Is: "+mystr)

其他回答

我使用以下方法:

if str and not str.isspace():
  print('not null and not empty nor whitespace')
else:
  print('null or empty or whitespace')

您需要使用isspace()方法

str.isspace () 如果字符串中只有空白字符,则返回true 至少有一个字符,否则为假。

在每个字符串对象上都有定义。下面是一个特定用例的使用示例:

if aStr and (not aStr.isspace()):
    print aStr

str.isspace()对于有效的空字符串返回False

>>> tests = ['foo', ' ', '\r\n\t', '']
>>> print([s.isspace() for s in tests])
[False, True, True, False]

因此,使用not检查也会计算None Type和" or ""(空字符串)

>>> tests = ['foo', ' ', '\r\n\t', '', None, ""]
>>> print ([not s or s.isspace() for s in tests])
[False, True, True, True, True, True]

您可以使用str.isspace()方法。

我假设在您的场景中,空字符串是真正为空的字符串或包含所有空白的字符串。

if(str.strip()):
    print("string is not empty")
else:
    print("string is empty")

注意,这不会检查None