Comment vérifier si une chaîne de caractères n'est pas vide en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous apprendrez à vérifier si une chaîne de caractères (string) n'est pas vide en Python en utilisant différentes méthodes. Le laboratoire vous guide tout au long de la création d'un fichier Python nommé string_check.py et de l'utilisation de l'évaluation booléenne (if string1:) et de la fonction len() (if len(string1) > 0:) pour déterminer si une chaîne de caractères contient au moins un caractère.

Vous exécuterez le script pour observer la sortie, ce qui démontrera comment Python identifie les chaînes de caractères non vides et vides en utilisant les deux approches. Le laboratoire fournit des exemples pratiques et des instructions étape par étape pour la mise en œuvre de ces techniques.


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{{"Comment vérifier si une chaîne de caractères n'est pas vide en Python"}} python/booleans -.-> lab-559579{{"Comment vérifier si une chaîne de caractères n'est pas vide en Python"}} python/conditional_statements -.-> lab-559579{{"Comment vérifier si une chaîne de caractères n'est pas vide en Python"}} python/build_in_functions -.-> lab-559579{{"Comment vérifier si une chaîne de caractères n'est pas vide en Python"}} end

Explorer les chaînes de caractères non vides

Dans cette étape, nous allons explorer comment déterminer si une chaîne de caractères (string) est non vide en Python. Une chaîne de caractères non vide est simplement une chaîne qui contient au moins un caractère. Il existe plusieurs façons de vérifier cette condition, et nous allons aborder les méthodes les plus courantes et les plus efficaces.

Tout d'abord, créons un fichier Python nommé string_check.py dans votre répertoire ~/project en utilisant l'éditeur 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")

Dans ce code :

  • Nous définissons deux chaînes de caractères : string1 qui contient "Hello", et string2 qui est une chaîne de caractères vide.
  • Nous utilisons les instructions if string1: et if string2: pour vérifier si les chaînes de caractères sont non vides. En Python, une chaîne de caractères vide est évaluée à False dans un contexte booléen, tandis qu'une chaîne de caractères non vide est évaluée à True.

Maintenant, exécutons le script en utilisant la commande python :

python ~/project/string_check.py

Vous devriez voir la sortie suivante :

string1 is non-empty
string2 is empty

Cela démontre que Python identifie correctement string1 comme non vide et string2 comme vide.

Une autre façon de vérifier si une chaîne de caractères est non vide consiste à utiliser la fonction len(). La fonction len() renvoie le nombre de caractères dans une chaîne de caractères. Si la longueur est supérieure à 0, la chaîne de caractères est non vide.

Modifions le fichier string_check.py pour utiliser la fonction 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")

Exécutons le script à nouveau :

python ~/project/string_check.py

La sortie sera la même que précédemment :

string1 is non-empty
string2 is empty

Les deux méthodes sont valides pour vérifier si une chaîne de caractères est non vide. La première méthode (en utilisant directement la chaîne de caractères dans un contexte booléen) est généralement considérée comme plus « Pythonique » et plus lisible.

Vérifier si len() > 0

Dans cette étape, nous allons nous concentrer spécifiquement sur l'utilisation de la fonction len() pour déterminer si une chaîne de caractères (string) est non vide. Comme nous l'avons vu dans l'étape précédente, len() renvoie le nombre de caractères dans une chaîne de caractères. Nous pouvons utiliser cette valeur pour vérifier explicitement si une chaîne de caractères contient des caractères.

Modifions notre fichier string_check.py dans le répertoire ~/project pour explorer ce point plus en détail. Nous allons ajouter plus d'exemples et utiliser plus explicitement la condition len() > 0.

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

Dans ce code :

  • Nous avons ajouté string3 qui contient un seul espace. Cela est important car une chaîne de caractères ne contenant que des espaces est toujours considérée comme non vide par Python si vous l'évaluez directement comme un booléen (comme nous l'avons fait dans l'étape précédente), mais sa longueur est supérieure à 0.
  • Nous affichons la longueur de chaque chaîne de caractères en utilisant len().
  • Nous utilisons la condition if len(string) > 0: pour vérifier explicitement si la longueur de la chaîne de caractères est supérieure à 0.

Maintenant, exécutons le script :

python ~/project/string_check.py

Vous devriez voir la sortie suivante :

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)

Comme vous pouvez le voir, len(string3) renvoie 1 car la chaîne de caractères contient un espace. Cela démontre que len() > 0 reflète précisément si une chaîne de caractères contient des caractères, y compris des espaces.

Cette méthode est utile lorsque vous avez besoin de connaître spécifiquement la longueur de la chaîne de caractères et que vous souhaitez effectuer des actions en fonction de cette longueur.

Utiliser l'évaluation booléenne

Dans cette étape, nous allons approfondir la façon dont Python évalue les chaînes de caractères (strings) dans un contexte booléen. Comme mentionné précédemment, Python considère les chaînes de caractères vides comme False et les chaînes de caractères non vides comme True. Ce comportement peut être utilisé directement dans les instructions if et autres expressions booléennes, rendant votre code plus concis et plus lisible.

Revoyons et modifions notre fichier string_check.py dans le répertoire ~/project pour nous concentrer sur cette évaluation booléenne. Nous allons ajouter plus d'exemples pour illustrer différents scénarios.

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

Dans ce code :

  • Nous avons ajouté string4 qui est assignée à la valeur None. None est une valeur spéciale en Python qui représente l'absence de valeur. Il est important de noter que None est également évalué à False dans un contexte booléen.
  • Nous utilisons directement les chaînes de caractères et None dans les instructions if sans comparer explicitement leur longueur à 0.

Maintenant, exécutons le script :

python ~/project/string_check.py

Vous devriez voir la sortie suivante :

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

Cette sortie démontre les points suivants :

  • string1 ("Python") est considéré comme True car c'est une chaîne de caractères non vide.
  • string2 ("") est considéré comme False car c'est une chaîne de caractères vide.
  • string3 (" ") est considéré comme True car c'est une chaîne de caractères non vide (elle contient des espaces).
  • string4 (None) est considéré comme False car None est toujours évalué à False.

Utiliser directement l'évaluation booléenne est une façon courante et efficace de vérifier les chaînes de caractères vides et les valeurs None en Python. Cela rend votre code plus lisible et plus facile à comprendre. Cependant, soyez attentifs aux chaînes de caractères ne contenant que des espaces, car elles seront considérées comme True avec cette méthode. Si vous avez besoin de vérifier spécifiquement les chaînes de caractères sans caractères (y compris les espaces), l'utilisation de len(string.strip()) > 0 peut être plus appropriée.

Résumé

Dans ce laboratoire (lab), nous avons exploré comment déterminer si une chaîne de caractères (string) est non vide en Python. Nous avons créé un fichier string_check.py et défini deux chaînes de caractères, l'une non vide et l'autre vide. Nous avons ensuite utilisé l'instruction if string:, tirant parti de l'évaluation booléenne de Python où une chaîne de caractères vide est False et une chaîne de caractères non vide est True, pour vérifier si les chaînes de caractères étaient non vides.

Nous avons également démontré une méthode alternative en utilisant la fonction len(). En vérifiant si len(string) > 0, nous pouvons déterminer si une chaîne de caractères contient au moins un caractère et est donc non vide. Les deux méthodes donnent le même résultat, à savoir identifier les chaînes de caractères non vides.