Come convertire una stringa in minuscola in Python 2 e 3
- Convertire la stringa in minuscola in Python 3
- Convertire la stringa in minuscolo in Python 2.7
- Conclusione
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.
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