Como Converter String em Caixa Baixa em Python 2 e 3
Converter string em minúsculas em Python 3
str
desde que Python 3.0 contém por padrão caracteres Unicode
, significando que qualquer string como "unicode example"
, 'unicode example 2'
é armazenada como Unicode
.
Portanto, você poderia utilizar str.lower()
para converter qualquer string em minúsculas no Python 3.
exampleString = "CaseString"
exampleString.lower()
#Out: 'casestring'
exampleString = "СтрокаСлучая"
exampleString.lower()
#Out: 'строкаслучая'
str.casefold()
conversão sem cas
str.lower()
converte a string para minúsculas, mas não converte as distinções de caixa na string.
Por exemplo, ß
em alemão é igual a s
- ss
, e ß
em si já é minúscula, portanto, str.lower()
não irá convertê-la.
Mas str.casefold()
irá converter ß
para ss
.
>>> 'Straße'.lower()
'straße'
>>> 'Straße'.casefold()
'strasse'
Converter string para minúsculas em Python 2.7
str
em Python 2.7 não é armazenado como Unicode
, e Unicode
strings são instâncias do tipo unicode
. Devemos distinguir se a string é uma string ASCII
ou uma string unicode
quando convertemos a string em minúsculas.
ASCII
tipo
É o mesmo com o método utilizado em Python 3. str.lower()
converte a string para minúsculas.
exampleString = "CaseStringExample"
exampleString.lower()
#Out: 'casestringexample'
unicode
tipo
Se os caracteres na string são do tipo unicode
, e a string não é explicitamente representada no tipo unicode
, o método str.lower()
não converte a string para minúsculas.
exampleString = "СтрокаСлучая"
print exampleString.lower()
#Out: СтрокаСлучая
exampleString.lower() == exampleString
#Out: True
Objetos Python para bytes não-ASCII em uma string sem codificação dada porque a codificação pretendida está implícita.
Usando Unicode
literal, mas não 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: строкаслучая
Você pode ver aqui que o primeiro caractere da string é convertido de \u0421
para \u0441
.
Converter um str
para unicode
Se a string dada estiver na forma de str
, precisamos primeiro convertê-la para unicode
antes da conversão em minúsculas.
exampleString = "СтрокаСлучая"
print exampleString.decode('utf-8').lower()
#Out: строкаслучая
Conclusão
O método lower()
é o método para converter string para minúsculas tanto em Python 2 como em Python 3, mas com uma diferença perceptível.
string em Python 3 é a string unicode
por padrão, mas string em Python 2 não é. Se a string não é explicitamente representada para ser do tipo unicode
, por exemplo não colocando u
antes da string, a string unicode não será convertida para minúsculas.
O str.casefold
converte as distinções de caixa para suas combinações sem caixa, mas só está disponível em Python 3. Você poderia instalar py2casefold em Python 2.