Cómo comprobar si una cadena no está vacía en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo verificar si una cadena no está vacía en Python utilizando diferentes métodos. El laboratorio te guía a través de la creación de un archivo de Python llamado string_check.py y el uso de la evaluación booleana (if string1:) y la función len() (if len(string1) > 0:) para determinar si una cadena contiene al menos un carácter.

Ejecutarás el script para observar la salida, lo que demuestra cómo Python identifica cadenas no vacías y vacías utilizando ambos enfoques. El laboratorio proporciona ejemplos prácticos e instrucciones paso a paso para implementar estas técnicas.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/FunctionsGroup -.-> python/build_in_functions("Build-in Functions") subgraph Lab Skills python/strings -.-> lab-559579{{"Cómo comprobar si una cadena no está vacía en Python"}} python/booleans -.-> lab-559579{{"Cómo comprobar si una cadena no está vacía en Python"}} python/conditional_statements -.-> lab-559579{{"Cómo comprobar si una cadena no está vacía en Python"}} python/build_in_functions -.-> lab-559579{{"Cómo comprobar si una cadena no está vacía en Python"}} end

Explorar Cadenas No Vacías

En este paso, exploraremos cómo determinar si una cadena es no vacía en Python. Una cadena no vacía es simplemente una cadena que contiene al menos un carácter. Hay varias formas de comprobar esta condición, y cubriremos los métodos más comunes y eficientes.

Primero, creemos un archivo de Python llamado string_check.py en tu directorio ~/project utilizando el 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")

En este código:

  • Definimos dos cadenas: string1 que contiene "Hello", y string2 que es una cadena vacía.
  • Usamos las declaraciones if string1: y if string2: para comprobar si las cadenas son no vacías. En Python, una cadena vacía se evalúa como False en un contexto booleano, mientras que una cadena no vacía se evalúa como True.

Ahora, ejecutemos el script utilizando el comando python:

python ~/project/string_check.py

Deberías ver la siguiente salida:

string1 is non-empty
string2 is empty

Esto demuestra que Python identifica correctamente a string1 como no vacía y a string2 como vacía.

Otra forma de comprobar si una cadena es no vacía es utilizar la función len(). La función len() devuelve el número de caracteres en una cadena. Si la longitud es mayor que 0, la cadena es no vacía.

Modifiquemos el archivo string_check.py para utilizar la función 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")

Ejecutemos el script nuevamente:

python ~/project/string_check.py

La salida será la misma que antes:

string1 is non-empty
string2 is empty

Ambos métodos son válidos para comprobar si una cadena es no vacía. El primer método (utilizar la cadena directamente en un contexto booleano) generalmente se considera más "pythonico" y legible.

Comprobar len() > 0

En este paso, nos centraremos específicamente en utilizar la función len() para determinar si una cadena es no vacía. Como vimos en el paso anterior, len() devuelve el número de caracteres en una cadena. Podemos utilizar este valor para comprobar explícitamente si una cadena tiene algún carácter.

Modifiquemos nuestro archivo string_check.py en el directorio ~/project para explorar esto más a fondo. Agregaremos más ejemplos y usaremos la condición len() > 0 de manera más 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)")

En este código:

  • Hemos agregado string3 que contiene un solo espacio. Esto es importante porque una cadena que contiene solo espacios todavía se considera no vacía por Python si la evaluas directamente como un booleano (como hicimos en el paso anterior), pero su longitud es mayor que 0.
  • Imprimimos la longitud de cada cadena utilizando len().
  • Usamos la condición if len(string) > 0: para comprobar explícitamente si la longitud de la cadena es mayor que 0.

Ahora, ejecutemos el script:

python ~/project/string_check.py

Deberías ver la siguiente salida:

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 puedes ver, len(string3) devuelve 1 porque la cadena contiene un espacio. Esto demuestra que len() > 0 refleja con precisión si una cadena contiene algún carácter, incluyendo espacios.

Este método es útil cuando necesitas saber específicamente la longitud de la cadena y deseas realizar acciones basadas en esa longitud.

Utilizar la Evaluación Booleana

En este paso, profundizaremos en cómo Python evalúa las cadenas en un contexto booleano. Como se mencionó anteriormente, Python trata las cadenas vacías como False y las cadenas no vacías como True. Este comportamiento se puede utilizar directamente en declaraciones if y otras expresiones booleanas, lo que hace que tu código sea más conciso y legible.

Revisemos y modifiquemos nuestro archivo string_check.py en el directorio ~/project para centrarnos en esta evaluación booleana. Agregaremos más ejemplos para ilustrar diferentes escenarios.

## ~/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")

En este código:

  • Hemos agregado string4 que se le asigna el valor None. None es un valor especial en Python que representa la ausencia de un valor. Es importante tener en cuenta que None también se evalúa como False en un contexto booleano.
  • Usamos directamente las cadenas y None en las declaraciones if sin comparar explícitamente sus longitudes con 0.

Ahora, ejecutemos el script:

python ~/project/string_check.py

Deberías ver la siguiente salida:

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

Esta salida demuestra lo siguiente:

  • string1 ("Python") se considera True porque es una cadena no vacía.
  • string2 ("") se considera False porque es una cadena vacía.
  • string3 (" ") se considera True porque es una cadena no vacía (contiene espacios).
  • string4 (None) se considera False porque None siempre se evalúa como False.

Utilizar la evaluación booleana directamente es una forma común y eficiente de comprobar cadenas vacías y valores None en Python. Hace que tu código sea más legible y fácil de entender. Sin embargo, ten en cuenta las cadenas que contienen solo espacios, ya que se considerarán True utilizando este método. Si necesitas comprobar específicamente cadenas sin caracteres (incluyendo espacios), usar len(string.strip()) > 0 podría ser más apropiado.

Resumen

En este laboratorio, exploramos cómo determinar si una cadena es no vacía en Python. Creamos un archivo string_check.py y definimos dos cadenas, una no vacía y una vacía. Luego, utilizamos la declaración if string:, aprovechando la evaluación booleana de Python donde una cadena vacía es False y una cadena no vacía es True, para comprobar si las cadenas eran no vacías.

También demostramos un método alternativo utilizando la función len(). Al comprobar si len(string) > 0, podemos determinar si una cadena contiene al menos un carácter y, por lo tanto, es no vacía. Ambos métodos logran el mismo resultado, identificar cadenas no vacías.