Come convertire una stringa in minuscola in Python 2 e 3

Jinku Hu 10 ottobre 2023 Python Python String
  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.

Python
 pythonCopyexampleString = "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.

Python
 pythonCopy>>> '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.

Python
 pythonCopyexampleString = "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
 pythonCopy# 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

Python
 pythonCopyexampleUnicodeString = 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.

Python
 pythonCopyexampleString = "СтрокаСлучая"
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.

Ti piacciono i nostri tutorial? Iscriviti a DelftStack su YouTube per aiutarci a creare altre guide video di alta qualità. Iscriviti
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