Como posso testar se uma string contém apenas espaço em branco?
Exemplos de strings:
" "
(espaço, espaço, espaço)" \t \n "
(espaço, tabulação, espaço, nova linha, espaço)"\n\n\n\t\n"
(nova linha, nova linha, nova linha, guia, nova linha)
Use o str.isspace()
método:
Retorne
True
se houver apenas caracteres de espaço em branco na string e houver pelo menos um caractere,False
caso contrário.Um caractere é um espaço em branco se, no banco de dados de caracteres Unicode (consulte unicodedata ), sua categoria geral for Zs (“Separador, espaço”) ou sua classe bidirecional for WS, B ou S.
Combine isso com um caso especial para manipular a string vazia.
Como alternativa, você pode usar str.strip()
e verificar se o resultado está vazio.
U+00A0
ou um código sem quebraALT+160
. Parece corrigido no Python 2.7, no entanto.None
, ou''
if len(str) == 0 or str.isspace():
len(my_str) == 0
também pode ser escritonot my_str
.fonte
True
paraNone
?Você quer usar o
isspace()
métodoIsso é definido em cada objeto de string. Aqui está um exemplo de uso para seu caso de uso específico:
fonte
Você pode usar o
str.isspace()
métodofonte
para aqueles que esperam um comportamento como o apache StringUtils.isBlank ou Guava Strings.isNullOrEmpty :
fonte
Verifique o comprimento da lista fornecida pelo método split ().
Ou Compare a saída do método strip () com null.
fonte
len()
funciona em strings. Além disso, o OP não estava pedindo para testar a sequência vazia, mas a sequência que era todos os espaços. Seu segundo método não é ruim. Além disso, suas parênteses em torno do condicional não são necessárias em python.==0
com==1
if len(your_string.split())==0:
->if not your_string.split():
,if your_string.strip() == '':
->if not your_string.strip():
. De qualquer forma, a primeira é inferior às soluções existentes e a segunda já foi mencionada em outras respostas.Aqui está uma resposta que deve funcionar em todos os casos:
Se a variável for None, ela irá parar em
not s
e não avaliar mais (desdenot None == True
). Aparentemente, ostrip()
método cuida dos casos usuais de tab, nova linha etc.fonte
not None == True
provavelmente é mais claro apenas dizerNone is False
. Além disso,==
não deve ser usado para essas comparações.Suponho que, no seu cenário, uma string vazia seja verdadeiramente vazia ou que contenha todo o espaço em branco.
Observe que isso não verifica se há
None
fonte
Eu usei o seguinte:
fonte
None
?Para verificar se uma sequência é apenas um espaço ou uma nova linha
Use este código simples
fonte
A semelhança com o método estático da string c # éNullOrWhiteSpace.
fonte
return (str is None) or (str == "") or (str.isspace())
None
e""
são falsos, então você pode:return not str or str.isspace()