Usar ord() e chr() para Converter Caracteres e Inteiros
Nesta etapa, aprenderemos como usar as funções embutidas do Python ord() e chr() para converter entre caracteres e suas representações inteiras correspondentes em Unicode.
No Python 3, strings são representadas usando Unicode. A função ord() recebe um único caractere como entrada e retorna seu valor inteiro decimal Unicode correspondente.
Vamos criar um novo arquivo Python para experimentar essas funções. No WebIDE, clique com o botão direito no diretório project no explorador de arquivos e selecione New File. Nomeie o arquivo como char_conversion.py.
Abra char_conversion.py no editor e adicione o seguinte código:
## Use ord() para obter o valor decimal Unicode de caracteres
char1 = 'a'
char2 = 'é'
char3 = ';'
print(f"O valor decimal Unicode de '{char1}' é: {ord(char1)}")
print(f"O valor decimal Unicode de '{char2}' é: {ord(char2)}")
print(f"O valor decimal Unicode de '{char3}' é: {ord(char3)}")
Salve o arquivo pressionando Ctrl + S (ou Cmd + S no macOS).
Agora, abra o terminal integrado novamente (se ele ainda não estiver aberto) e execute o script usando o comando python:
python char_conversion.py
Você deverá ver uma saída semelhante a esta:
O valor decimal Unicode de 'a' é: 97
O valor decimal Unicode de 'é' é: 233
O valor decimal Unicode de ';' é: 59
A função chr() realiza a operação inversa. Ela recebe um inteiro decimal (ou um inteiro hexadecimal) representando um ponto de código Unicode e retorna o caractere correspondente.
Vamos adicionar mais código a char_conversion.py para usar a função chr(). Anexe as seguintes linhas ao código existente:
## Use chr() para obter o caractere a partir de um valor decimal Unicode
int1 = 8364
int2 = 8482
print(f"O caractere para o valor decimal Unicode {int1} é: {chr(int1)}")
print(f"O caractere para o valor decimal Unicode {int2} é: {chr(int2)}")
## Você também pode usar valores hexadecimais com chr()
hex_int = 0x00A9 ## Hexadecimal para o caractere '©'
print(f"O caractere para o valor hexadecimal Unicode {hex(hex_int)} é: {chr(hex_int)}")
Salve o arquivo novamente.
Execute o script a partir do terminal:
python char_conversion.py
A saída agora deve incluir os resultados da função chr():
O valor decimal Unicode de 'a' é: 97
O valor decimal Unicode de 'é' é: 233
O valor decimal Unicode de ';' é: 59
O caractere para o valor decimal Unicode 8364 é: €
O caractere para o valor decimal Unicode 8482 é: ™
O caractere para o valor hexadecimal Unicode 0xa9 é: ©
Você pode se perguntar como encontrar a representação hexadecimal Unicode de um caractere. Você pode usar a função ord() para obter o valor decimal e, em seguida, a função embutida hex() para converter o valor decimal em sua representação de string hexadecimal.
Adicione o seguinte código a char_conversion.py:
## Converta um caractere para sua representação hexadecimal Unicode
char_copyright = '©'
decimal_copyright = ord(char_copyright)
hexadecimal_copyright = hex(decimal_copyright)
print(f"O valor hexadecimal Unicode de '{char_copyright}' é: {hexadecimal_copyright}")
Salve o arquivo e execute-o pela última vez:
python char_conversion.py
A saída final incluirá o valor hexadecimal para o caractere '©':
O valor decimal Unicode de 'a' é: 97
O valor decimal Unicode de 'é' é: 233
O valor decimal Unicode de ';' é: 59
O caractere para o valor decimal Unicode 8364 é: €
O caractere para o valor decimal Unicode 8482 é: ™
O caractere para o valor hexadecimal Unicode 0xa9 é: ©
O valor hexadecimal Unicode de '©' é: 0xa9
Isso demonstra como ord(), chr() e hex() podem ser usados em conjunto para trabalhar com codificações de caracteres em Python.