Como Converter String em Caixa Baixa em Python 2 e 3

  1. Converter string em minúsculas em Python 3
  2. Converter string para minúsculas em Python 2.7
  3. Conclusão

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.

Artigo relacionado - Python String

  • Como obter uma string de uma string em Python
  • Remover números da string em Python