Como Converter String em Caixa Baixa em Python 2 e 3

Jinku Hu 10 outubro 2023
  1. Converter string em minúsculas em Python 3
  2. Converter string para minúsculas em Python 2.7
  3. Conclusão
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.

# python 2.x
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.

Autor: 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

Artigo relacionado - Python String