Capitaliser la première lettre de chaque mot en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Mettre en majuscule la première lettre de chaque mot en Python en utilisant la méthode string.title()
  2. Mettre en majuscule chaque mot en Python en utilisant la méthode string.capwords()
  3. Mettre en majuscule chaque mot en Python en utilisant les méthodes string.split() et string.join()
Capitaliser la première lettre de chaque mot en Python

Ce tutoriel expliquera différentes méthodes pour mettre en majuscule la première lettre de chaque mot de la chaîne en Python. Si nous avons une chaîne comme hey! what's up?et nous voulons le convertir en Hey! What's Up?. Nous pouvons le faire en utilisant une méthode disponible ou en séparant chaque mot de la chaîne, en mettant en majuscule la première lettre de chaque mot, puis en réunissant la chaîne.

Nous pouvons aussi avoir des chaînes comme hey... what's up? Et nous voulons conserver l’espacement d’origine de la chaîne. Ce tutoriel examinera les différentes méthodes pour résoudre ces problèmes.

Mettre en majuscule la première lettre de chaque mot en Python en utilisant la méthode string.title()

Le string.title() est une méthode intégrée qui prend une chaîne comme entrée et retourne la chaîne avec chaque mot en majuscule le premier caractère. La méthode string.title() ne modifie pas l’espacement d’origine de la chaîne. L’exemple de code ci-dessous montre comment utiliser la méthode string.title() pour mettre en majuscule chaque lettre d’un mot en Python.

string = "hey! what's up?"
print(string)
print(string.title())

Production:

Hey! What's up?
Hey! What'S Up?

Comme on peut le remarquer dans l’exemple ci-dessus, la méthode string.title() ne fonctionne pas bien avec les signes de ponctuation, car elle met en majuscule la lettre après les signes de ponctuation.

Mettre en majuscule chaque mot en Python en utilisant la méthode string.capwords()

Le string.capwords(string, sep) du module string prend la chaîne comme premier paramètre et le sep comme deuxième paramètre et retourne la chaîne avec le premier caractère en majuscule de chaque mot, séparé sur la base du paramètre sep. Si aucune valeur n’est transmise au paramètre sep ou définie sur None, les espaces seront utilisés comme séparateur et un seul espace remplace un ou plusieurs espaces.

L’exemple de code ci-dessous montre comment utiliser la méthode string.capwords() pour mettre en majuscule chaque mot de la chaîne:

import string

mystring = "hey!   what's up?"
print(mystring)
print(string.capwords(mystring))

Production:

hey!   what's up?
Hey! What's Up?

Le problème avec cette méthode est qu’elle manquera des mots comme 'hello' ou si nous passons le paramètre ' comme paramètre sep, elle mettra en majuscule what's à what'S, comme indiqué dans l’exemple de code en dessous :

import string

mystring = "'hello'   what's up?"
print(mystring)
print(string.capwords(mystring))
print(string.capwords(mystring, sep="'"))

Production:

'hello'   what's up?
'hello' What's Up?
'Hello'   what'S up?

Mettre en majuscule chaque mot en Python en utilisant les méthodes string.split() et string.join()

La méthode string.split(separator,..) convertit la chaîne en une liste en utilisant la valeur fournie du paramètre separator comme séparateur. La méthode string.join(iterable) prend l’objet itérable comme entrée et le convertit en une chaîne en utilisant l’argument de chaîne fourni comme séparateur de mot.

L’exemple de code ci-dessous montre comment utiliser les méthodes string.split() et string.join() pour mettre en majuscule la première lettre de chaque mot en Python.

import re

s = "'hello'   what's up?"
print(s)
slist = []
for word in s.split():
    if word[0] in ("'", '"', "("):
        word = word[0] + word[1].upper() + word[2:]
        slist.append(word)
    else:
        word = word[0].upper() + word[1:]
        slist.append(word)
    new_string = " ".join(slist)
print(new_string)

Production:

'hello'   what's up?
'Hello' What's Up?

Comme on peut le remarquer dans l’exemple ci-dessus, cette méthode peut gérer les citations, les noms possessifs et les mots entre parenthèses. Mais l’espacement d’origine de la chaîne sera perdu dans cette méthode.

Article connexe - Python String