Come convertire una stringa in minuscola in Python 2 e 3

Jinku Hu 10 ottobre 2023
  1. Convertire la stringa in minuscola in Python 3
  2. Convertire la stringa in minuscolo in Python 2.7
  3. Conclusione
Come convertire una stringa in minuscola in Python 2 e 3

Convertire la stringa in minuscola in Python 3

Il tipo str poiché Python 3.0 contiene di default i caratteri Unicode, cioè qualsiasi stringa come "unicode example", 'unicode example 2' viene memorizzato come Unicode.

Pertanto, si potrebbe usare str.lower() per convertire qualsiasi stringa in minuscolo in Python 3.

exampleString = "CaseString"
exampleString.lower()
# Out: 'casestring'

exampleString = "СтрокаСлучая"
exampleString.lower()
# Out: 'строкаслучая'

str.casefold() conversione caseless

str.lower() converte la stringa in minuscolo, ma non converte le distinzioni di maiuscolo nella stringa.

Per esempio, ß in tedesco è uguale a doppio s - ss, e ß è già di per sé minuscola, quindi, str.lower() non la converte.

Ma str.casefold() convertirà ß in ss.

>>> 'Straße'.lower()
'straße'
>>> 'Straße'.casefold()
'strasse'

Convertire la stringa in minuscolo in Python 2.7

Il tipo str in Python 2.7 non è memorizzato come Unicode, e le stringhe Unicode sono istanze del tipo unicode. Dobbiamo distinguere se la stringa è una stringa ASCII o unicode quando convertiamo la stringa in minuscolo.

Tipo ASCII

Lo stesso vale per il metodo usato in Python 3. str.lower() converte la stringa in minuscolo.

exampleString = "CaseStringExample"
exampleString.lower()
# Out: 'casestringexample'

Tipo unicode

Se i caratteri nella stringa sono di tipo Unicode, e la stringa non è esplicitamente rappresentata di tipo Unicode, il metodo str.lower() non converte affatto la stringa in minuscolo.

# python 2.x
exampleString = "СтрокаСлучая"
print exampleString.lower()
#Out: СтрокаСлучая

exampleString.lower() == exampleString
#Out: True

Gli oggetti Python in byte non ASCII in una stringa senza codifica data perché la codifica prevista è implicita.

Utilizzando i termini Unicode letterali ma non str

exampleUnicodeString = u"СтрокаСлучая"
exampleUnicode
# u'\u0421\u0442\u0440\u043e\u043a\u0430\u0421\u043b\u0443\u0447\u0430\u044f'
exampleUnicodeString.lower()
# u'\u0441\u0442\u0440\u043e\u043a\u0430\u0441\u043b\u0443\u0447\u0430\u044f'

print exampleUnicodeString.lower()
# Out: строкаслучая

Si può vedere qui che il primo carattere della stringa viene convertito da \u0421 a \u0441.

Convertire una stringa in ununicodo

Se la stringa data è in forma di str, dobbiamo prima convertirla in Unicode prima della conversione minuscola.

exampleString = "СтрокаСлучая"
print exampleString.decode("utf-8").lower()
# Out: строкаслучая

Conclusione

Il metodo lower() è il metodo per convertire la stringa in minuscolo sia in Python 2 che in 3, ma con una notevole differenza.

stringa in Python 3 è la stringa unicode di default, ma la stringa in Python 2 non lo è. Se la stringa non è rappresentata esplicitamente per essere di tipo unicode, per esempio non mettendo u prima della stringa, la stringa unicode non sarà affatto convertita in minuscolo.

Lo str.casefold converte le distinzioni di maiuscole e minuscole nelle loro corrispondenze senza maiuscole, ma è disponibile solo in Python 3. Si può installare py2casefold in Python 2.

Autore: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Articolo correlato - Python String