Capitalizzare la prima lettera di ogni parola in Python

Muhammad Waiz Khan 30 gennaio 2023
  1. Scrivi in ​​maiuscolo la prima lettera di ogni parola in Python usando il metodo string.title()
  2. Scrivi in ​​maiuscolo ogni parola in Python usando il metodo string.capwords()
  3. Scrivi in ​​maiuscolo ogni parola in Python usando i metodi string.split() e string.join()
Capitalizzare la prima lettera di ogni parola in Python

Questo tutorial spiegherà vari metodi per rendere maiuscola la prima lettera di ogni parola nella stringa in Python. Se abbiamo una stringa come hey! what's up? e vogliamo convertirlo in Hey! What's Up?. Possiamo farlo utilizzando un metodo disponibile o separando ogni parola della stringa, mettendo in maiuscolo la prima lettera di ogni parola e quindi unendo di nuovo la stringa.

Potremmo anche avere stringhe come hey... what's up? e vogliamo mantenere la spaziatura originale della stringa. Questo tutorial esaminerà i vari metodi per risolvere questi problemi.

Scrivi in ​​maiuscolo la prima lettera di ogni parola in Python usando il metodo string.title()

string.title() è un metodo integrato che accetta una stringa come input e restituisce la stringa con il primo carattere in maiuscolo di ogni parola. Il metodo string.title() non cambia la spaziatura originale della stringa. L’esempio di codice seguente mostra come utilizzare il metodo string.title() per rendere maiuscola ogni lettera di una parola in Python.

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

Produzione:

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

Come si può notare nell’esempio precedente, il metodo string.title() non funziona bene con i segni di punteggiatura, poiché rende maiuscola la lettera dopo i segni di punteggiatura.

Scrivi in ​​maiuscolo ogni parola in Python usando il metodo string.capwords()

La string.capwords(string, sep) del modulo string prende la stringa come primo parametro e sep come secondo parametro e restituisce la stringa con il primo carattere maiuscolo di ogni parola, separato in base del parametro sep. Se nessun valore viene passato al parametro sep o impostato su None, gli spazi bianchi saranno usati come separatori, e un singolo spazio bianco sostituisce uno o più spazi bianchi.

Il codice di esempio seguente mostra come utilizzare il metodo string.capwords() per rendere maiuscola ogni parola della stringa:

import string

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

Produzione:

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

Il problema con questo metodo è che o mancheranno parole come 'hello' o se passiamo il ' come parametro sep, metterà in maiuscolo what's in what'S, come mostrato nel codice di esempio sotto:

import string

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

Produzione:

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

Scrivi in ​​maiuscolo ogni parola in Python usando i metodi string.split() e string.join()

Il metodo string.split(separator,..) converte la stringa in una lista utilizzando il valore fornito del parametro separator come separatore. Il metodo string.join(iterable) prende l’oggetto iterabile come input e lo converte in una stringa usando l’argomento stringa fornito come separatore di parole.

Il codice di esempio sotto mostra come usare i metodi string.split() e string.join() per rendere maiuscola la prima lettera di ogni parola in 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)

Produzione:

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

Come si può notare nell’esempio sopra, questo metodo può gestire le citazioni, i nomi possessivi e le parole tra parentesi. Ma la spaziatura originale della stringa andrà persa in questo metodo.

Articolo correlato - Python String