Como Verificar se uma String não está Vazia em Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se uma string não está vazia em Python usando diferentes métodos. O laboratório guia você na criação de um arquivo Python chamado string_check.py e no uso da avaliação booleana (if string1:) e da função len() (if len(string1) > 0:) para determinar se uma string contém pelo menos um caractere.

Você executará o script para observar a saída, demonstrando como o Python identifica strings não vazias e vazias usando ambas as abordagens. O laboratório fornece exemplos práticos e instruções passo a passo para implementar essas técnicas.

Explorar Strings Não Vazias

Nesta etapa, exploraremos como determinar se uma string não está vazia em Python. Uma string não vazia é simplesmente uma string que contém pelo menos um caractere. Existem várias maneiras de verificar essa condição, e abordaremos os métodos mais comuns e eficientes.

Primeiro, vamos criar um arquivo Python chamado string_check.py no seu diretório ~/project usando o editor VS Code.

## ~/project/string_check.py
string1 = "Hello"
string2 = ""

if string1:
    print("string1 is non-empty")
else:
    print("string1 is empty")

if string2:
    print("string2 is non-empty")
else:
    print("string2 is empty")

Neste código:

  • Definimos duas strings: string1, que contém "Hello", e string2, que é uma string vazia.
  • Usamos as instruções if string1: e if string2: para verificar se as strings não estão vazias. Em Python, uma string vazia é avaliada como False em um contexto booleano, enquanto uma string não vazia é avaliada como True.

Agora, vamos executar o script usando o comando python:

python ~/project/string_check.py

Você deve ver a seguinte saída:

string1 is non-empty
string2 is empty

Isso demonstra que o Python identifica corretamente string1 como não vazia e string2 como vazia.

Outra maneira de verificar se uma string não está vazia é usar a função len(). A função len() retorna o número de caracteres em uma string. Se o comprimento for maior que 0, a string não está vazia.

Vamos modificar o arquivo string_check.py para usar a função len():

## ~/project/string_check.py
string1 = "Hello"
string2 = ""

if len(string1) > 0:
    print("string1 is non-empty")
else:
    print("string1 is empty")

if len(string2) > 0:
    print("string2 is non-empty")
else:
    print("string2 is empty")

Execute o script novamente:

python ~/project/string_check.py

A saída será a mesma de antes:

string1 is non-empty
string2 is empty

Ambos os métodos são válidos para verificar se uma string não está vazia. O primeiro método (usando a string diretamente em um contexto booleano) é geralmente considerado mais "Pythonic" e legível.

Verificar len() > 0

Nesta etapa, focaremos especificamente no uso da função len() para determinar se uma string não está vazia. Como vimos na etapa anterior, len() retorna o número de caracteres em uma string. Podemos usar esse valor para verificar explicitamente se uma string possui algum caractere.

Vamos modificar nosso arquivo string_check.py no diretório ~/project para explorar isso mais a fundo. Adicionaremos mais exemplos e usaremos a condição len() > 0 de forma mais explícita.

## ~/project/string_check.py
string1 = "Python"
string2 = ""
string3 = " "  ## A string containing a single space

print("String 1:", string1)
print("Length of String 1:", len(string1))

print("String 2:", string2)
print("Length of String 2:", len(string2))

print("String 3:", string3)
print("Length of String 3:", len(string3))


if len(string1) > 0:
    print("string1 is non-empty (len() > 0)")
else:
    print("string1 is empty (len() > 0)")

if len(string2) > 0:
    print("string2 is non-empty (len() > 0)")
else:
    print("string2 is empty (len() > 0)")

if len(string3) > 0:
    print("string3 is non-empty (len() > 0)")
else:
    print("string3 is empty (len() > 0)")

Neste código:

  • Adicionamos string3, que contém um único espaço. Isso é importante porque uma string contendo apenas espaços ainda é considerada não vazia pelo Python se você a avaliar diretamente como um booleano (como fizemos na etapa anterior), mas seu comprimento é maior que 0.
  • Imprimimos o comprimento de cada string usando len().
  • Usamos a condição if len(string) > 0: para verificar explicitamente se o comprimento da string é maior que 0.

Agora, execute o script:

python ~/project/string_check.py

Você deve ver a seguinte saída:

String 1: Python
Length of String 1: 6
String 2:
Length of String 2: 0
String 3:
Length of String 3: 1
string1 is non-empty (len() > 0)
string2 is empty (len() > 0)
string3 is non-empty (len() > 0)

Como você pode ver, len(string3) retorna 1 porque a string contém um espaço. Isso demonstra que len() > 0 reflete com precisão se uma string contém algum caractere, incluindo espaços.

Este método é útil quando você precisa especificamente saber o comprimento da string e deseja realizar ações com base nesse comprimento.

Usar Avaliação Booleana

Nesta etapa, nos aprofundaremos em como o Python avalia strings em um contexto booleano. Como mencionado anteriormente, o Python trata strings vazias como False e strings não vazias como True. Esse comportamento pode ser usado diretamente em instruções if e outras expressões booleanas, tornando seu código mais conciso e legível.

Vamos revisitar e modificar nosso arquivo string_check.py no diretório ~/project para focar nessa avaliação booleana. Adicionaremos mais exemplos para ilustrar diferentes cenários.

## ~/project/string_check.py
string1 = "Python"
string2 = ""
string3 = "  "  ## A string containing two spaces
string4 = None  ## A None object

print("String 1:", string1)
print("String 2:", string2)
print("String 3:", string3)
print("String 4:", string4)

if string1:
    print("string1 is considered True")
else:
    print("string1 is considered False")

if string2:
    print("string2 is considered True")
else:
    print("string2 is considered False")

if string3:
    print("string3 is considered True")
else:
    print("string3 is considered False")

if string4:
    print("string4 is considered True")
else:
    print("string4 is considered False")

Neste código:

  • Adicionamos string4, que recebe o valor None. None é um valor especial em Python que representa a ausência de um valor. É importante notar que None também é avaliado como False em um contexto booleano.
  • Usamos diretamente as strings e None nas instruções if sem comparar explicitamente seus comprimentos com 0.

Agora, execute o script:

python ~/project/string_check.py

Você deve ver a seguinte saída:

String 1: Python
String 2:
String 3:
String 4: None
string1 is considered True
string2 is considered False
string3 is considered True
string4 is considered False

Essa saída demonstra o seguinte:

  • string1 ("Python") é considerado True porque é uma string não vazia.
  • string2 ("") é considerado False porque é uma string vazia.
  • string3 (" ") é considerado True porque é uma string não vazia (contém espaços).
  • string4 (None) é considerado False porque None sempre é avaliado como False.

Usar a avaliação booleana diretamente é uma maneira comum e eficiente de verificar strings vazias e valores None em Python. Isso torna seu código mais legível e fácil de entender. No entanto, esteja atento a strings contendo apenas espaços, pois elas serão consideradas True usando este método. Se você precisar verificar especificamente strings sem caracteres (incluindo espaços), usar len(string.strip()) > 0 pode ser mais apropriado.

Resumo

Neste laboratório, exploramos como determinar se uma string não está vazia em Python. Criamos um arquivo string_check.py e definimos duas strings, uma não vazia e outra vazia. Em seguida, usamos a instrução if string:, aproveitando a avaliação booleana do Python, onde uma string vazia é False e uma string não vazia é True, para verificar se as strings não estavam vazias.

Também demonstramos um método alternativo usando a função len(). Verificando se len(string) > 0, podemos determinar se uma string contém pelo menos um caractere e, portanto, não está vazia. Ambos os métodos alcançam o mesmo resultado, identificando strings não vazias.