Elenco di metodi di stringa per manipolare lettere maiuscole e minuscole in Python

Attività commerciale

Il tipo di stringa di Python (str) è dotato di metodi convenienti per manipolare le lettere maiuscole e minuscole. Potete convertire tra maiuscole e minuscole e determinare il caso.

Le seguenti informazioni sono fornite qui.

  • Conversione tra lettere maiuscole e minuscole
    • Uso di base
    • Gestione di caratteri a grandezza naturale e a metà grandezza
    • str.upper()Convertire tutte le lettere in maiuscole
    • str.lower()Convertire tutte le lettere in minuscolo
    • str.capitalize()Convertire la prima lettera in maiuscolo e il resto in minuscolo.
    • str.title()Convertire la prima lettera di una parola in maiuscolo e il resto in minuscolo.
    • str.swapcase()Convertire lettere maiuscole in minuscole e lettere minuscole in maiuscole.
  • Determinare le lettere maiuscole e minuscole
    • str.isupper(): Determinare se tutte le lettere sono maiuscole
    • str.islower(): Determinare se tutti i caratteri sono minuscoli.
    • str.istitle(): Determinare se si tratta di un caso di titolo.
  • Confronta le stringhe in modo insensibile alle maiuscole e alle minuscole

Conversione tra lettere maiuscole e minuscole

Uso di base

Per prima cosa, spiegherò l'uso di base. Useremo il metodo upper() per capitalizzare tutte le lettere come esempio, ma lo stesso vale per altri metodi.

Per comodità, scriviamo “conversione”, ma in Python, gli oggetti di tipo stringa (str) non sono aggiornabili, quindi la stringa originale (s_org nell'esempio) non viene modificata.

s_org = 'pYThon proGramminG laNguAge'

print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE

print(s_org)
# pYThon proGramminG laNguAge

Se volete usare la stringa convertita in seguito, potete memorizzarla in una nuova variabile come segue.

s_new = s_org.upper()
print(s_new)
# PYTHON PROGRAMMING LANGUAGE

È anche possibile sovrascrivere la variabile originale.

s_org = s_org.upper()
print(s_org)
# PYTHON PROGRAMMING LANGUAGE

Gestione di caratteri a grandezza naturale e a metà grandezza

Se un carattere è sensibile alle maiuscole e alle minuscole, come l'alfabeto, sarà convertito in caratteri sia a singolo che a doppio byte.

I caratteri che non sono case-sensitive, come i numeri e i caratteri cinesi, rimangono invariati. L'esempio è per upper(), ma lo stesso vale per altri metodi.

s_org = 'Pyhon Python 123'

print(s_org.upper())
# PYHON PYTHON 123

str.upper(): converte tutte le lettere in maiuscolo

s_org = 'pYThon proGramminG laNguAge'

print(s_org.upper())
# PYTHON PROGRAMMING LANGUAGE

str.lower(): converte tutti i caratteri in minuscolo

s_org = 'pYThon proGramminG laNguAge'

print(s_org.lower())
# python programming language

str.capitalize(): converte la prima lettera in maiuscolo, il resto in minuscolo

s_org = 'pYThon proGramminG laNguAge'

print(s_org.capitalize())
# Python programming language

str.title(): converte la prima lettera di una parola in maiuscolo e il resto in minuscolo

Conversione in un cosiddetto caso di titolo.

s_org = 'pYThon proGramminG laNguAge'

print(s_org.title())
# Python Programming Language

str.swapcase(): converte le maiuscole in minuscole, le minuscole in maiuscole

Scambia lettere maiuscole e minuscole.

s_org = 'pYThon proGramminG laNguAge'

print(s_org.swapcase())
# PytHON PROgRAMMINg LAnGUaGE

Determinare le lettere maiuscole e minuscole

Negli esempi seguenti, i metodi sono chiamati direttamente da letterali di stringa come 'python', ma lo stesso vale se memorizzati in variabili come negli esempi precedenti.

str.isupper(): determina se tutte le lettere sono maiuscole

isupper() restituisce true se contiene almeno un carattere maiuscolo e tutti sono maiuscoli, e false altrimenti.

print('PYTHON'.isupper())
# True

print('Python'.isupper())
# False

Se il carattere è case-sensitive, anche i caratteri a doppio byte sono giudicati.

print('PYTHON'.isupper())
# True

Se anche un solo carattere case-sensitive è incluso, il carattere case-insensitive viene ignorato, ma se nessun carattere case-sensitive è incluso (tutti i caratteri sono case-insensitive), la decisione è false.

print('PYTHON 123'.isupper())
# True

print('123'.isupper())
# False

str.islower(): determina se tutti i caratteri sono minuscoli

islower() restituisce true se contiene almeno un carattere minuscolo e tutti sono minuscoli, e false altrimenti.

print('python'.islower())
# True

print('Python'.islower())
# False

Se il carattere è case-sensitive, anche i caratteri a doppio byte sono giudicati.

print('python'.islower())
# True

Se anche un solo carattere case-sensitive è incluso, il carattere case-insensitive viene ignorato, ma se nessun carattere case-sensitive è incluso (tutti i caratteri sono case-insensitive), la decisione è false.

print('python 123'.islower())
# True

print('123'.islower())
# False

str.istitle(): Determina se il caso è un caso di titolo.

istitle() restituisce true se la stringa è un caso di titolo (la prima lettera della parola è maiuscola, il resto è minuscolo), false altrimenti.

print('Python Programming Language'.istitle())
# True

print('PYTHON Programming Language'.istitle())
# False

Se contiene caratteri case-insensitive, sarà falso se i caratteri case-insensitive sono preceduti da una lettera minuscola.

print('★Python Programming Language'.istitle())
# True

print('Python★ Programming Language'.istitle())
# True

print('Py★thon Programming Language'.istitle())
# False

Si noti che non ci sono molte stringhe come l'esempio precedente, ma è realistico includere numeri in numeri ordinali e altri casi.

print('The 1st Team'.istitle())
# False

print('The 1St Team'.istitle())
# True

Se non sono inclusi caratteri sensibili alle maiuscole e alle minuscole (tutti i caratteri sono case-insensitive), false.

print('123'.istitle())
# False

Confronta le stringhe in modo insensibile alle maiuscole e alle minuscole

Quando si confrontano le stringhe, lettere maiuscole e minuscole diverse non sono considerate equivalenti.

s1 = 'python'
s2 = 'PYTHON'

print(s1 == s2)
# False

Se volete fare un confronto insensibile alle maiuscole, potete usare upper() o lower() per convertire i due e confrontarli.

print(s1.upper() == s2.upper())
# True

print(s1.lower() == s2.lower())
# True

print(s1.capitalize() == s2.capitalize())
# True

print(s1.title() == s2.title())
# True