You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: capitulos/cap04.adoc
+7-7Lines changed: 7 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -177,7 +177,7 @@ Assim, quatro formas diferentes de apresentação são utilizadas, dependendo do
177
177
É por isso que no <<ex_bytes_bytearray>> vemos `b'caf\xc3\xa9'`:
178
178
os primeiros três bytes, `b'caf'`, estão na faixa de impressão do ASCII, ao contrário dos dois últimos.
179
179
180
-
Tanto `bytes` quanto `bytearray` suportam todos os métodos de `str`, exceto aqueles relacionados formatação (`format`, `format_map`)
180
+
Tanto `bytes` quanto `bytearray` suportam todos os métodos de `str`, exceto aqueles relacionados a formatação (`format`, `format_map`)
181
181
e aqueles que dependem de dados Unicode, incluindo `casefold`, `isdecimal`, `isidentifier`, `isnumeric`, `isprintable`, e `encode`.
182
182
Isso significa que você pode usar os métodos conhecidos de string, como `endswith`, `replace`, `strip`, `translate`, `upper` e dezenas de outros, com sequências binárias—mas com argumentos `bytes` em vez de `str`.
183
183
Além disso, as funções de expressões regulares no módulo `re` também funcionam com sequências binárias, se a regex for compilada a partir de uma sequência binária ao invés de uma `str`.
@@ -219,7 +219,7 @@ Veja uma demonstração no <<ex_buffer_demo>>.
219
219
b'\xfe\xff\xff\xff\x00\x00\x01\x00\x02\x00' <3>
220
220
----
221
221
====
222
-
<1> O typecode `'h'` criar um `array` de _short integers_ (inteiros de 16 bits).
222
+
<1> O typecode `'h'` cria um `array` de _short integers_ (inteiros de 16 bits).
223
223
<2> `octets` mantém uma cópia dos bytes que compõem `numbers`.
224
224
<3> Esses são os 10 bytes que representam os 5 inteiros pequenos.
No((("\N{} (Unicode literals escape notation)")))((("Unicode literals escape notation (\N{})"))) <<ex_stdout_check>>, usei a expressão de escape`'\N{}'` para literais Unicode, escrevendo o nome oficial do caractere dentro do `\N{}`.
744
+
No((("\N{} (Unicode literals escape notation)")))((("Unicode literals escape notation (\N{})"))) <<ex_stdout_check>>, usei a expressão de escape`'\N{}'` para literais Unicode, escrevendo o nome oficial do caractere dentro do `\N{}`.
745
745
Isso é bastante prolixo, mas explícito e seguro: o Python gera um `SyntaxError` se o nome não existir—bem melhor que escrever um número hexadecimal que pode estar errado, mas isso só será descoberto muito mais tarde.
746
746
De qualquer forma, você provavelmente vai querer escrever um comentário explicando os códigos dos caracteres, então a verbosidade do `\N{}` é fácil de aceitar.
747
747
====
@@ -1120,7 +1120,7 @@ O <<ex_asciize_demo>> mostra a `asciize` em ação.
1120
1120
Cada língua tem suas próprias regras para remoção de sinais diacríticos. Por exemplo, os alemães trocam o `'ü'` por `'ue'`. Nossa função `asciize` não é tão refinada, então pode ou não ser adequada para a sua língua. Contudo, ela é aceitável para o português.
1121
1121
====
1122
1122
1123
-
Resumindo, as funções em _simplify.py_ vão bem além da normalização padrão, e realizam um cirurgia profunda no texto, com boas chances de mudar seu sentido. Só você pode decidir se deve ir tão longe, conhecendo a língua alvo, os seus usuários e a forma como o texto transformado será utilizado.
1123
+
Resumindo, as funções em _simplify.py_ vão bem além da normalização padrão, e realizam uma cirurgia profunda no texto, com boas chances de mudar seu sentido. Só você pode decidir se deve ir tão longe, conhecendo a língua alvo, os seus usuários e a forma como o texto transformado será utilizado.
1124
1124
1125
1125
Isso conclui nossa discussão sobre normalização de texto Unicode.
1126
1126
@@ -1405,7 +1405,7 @@ O Unicode é um buraco de coelho bem fundo. É hora de encerrar nossa exploraç
1405
1405
1406
1406
Começamos((("Unicode text versus bytes", "overview of"))) o capítulo descartando a noção de que `1 caractere == 1 byte`. A medida que o mundo adota o Unicode, precisamos manter o conceito de strings de texto separado das sequências binárias que as representam em arquivos, e o Python 3 aplica essa separação.
1407
1407
1408
-
Após uma breve passada pelos tipos de dados sequências binárias—`bytes`, `bytearray`, e `memoryview`—, mergulhamos na codificação e na decodificação, com uma amostragem dos codec importantes, seguida por abordagens para prevenir ou lidar com os abomináveis `UnicodeEncodeError`, `UnicodeDecodeError` e os `SyntaxError` causados pela codificação errada em arquivos de código-fonte do Python.
1408
+
Após uma breve passada pelos tipos de dados sequências binárias—`bytes`, `bytearray`, e `memoryview`—, mergulhamos na codificação e na decodificação, com uma amostragem dos codecs importantes, seguida por abordagens para prevenir ou lidar com os abomináveis `UnicodeEncodeError`, `UnicodeDecodeError` e os `SyntaxError` causados pela codificação errada em arquivos de código-fonte do Python.
1409
1409
1410
1410
A seguir consideramos a teoria e a prática de detecção de codificação na ausência de metadados: em teoria, não pode ser feita, mas na prática o pacote Chardet consegue realizar esse feito para uma grande quantidade de codificações populares. Marcadores de ordem de bytes foram apresentados como a única dica de codificação encontrada em arquivos UTF-16 e UTF-32--algumas vezes também em arquivos UTF-8.
1411
1411
@@ -1415,7 +1415,7 @@ Uma triste realidade para usuários de Windows é o fato dessas configurações
1415
1415
1416
1416
O Unicode fornece múltiplas formas de representar alguns caracteres, então a normalização é um pré-requisito para a comparação de textos. Além de explicar a normalização e o _case folding_, apresentamos algumas funções úteis que podem ser adaptadas para as suas necessidades, incluindo transformações drásticas como a remoção de todos os acentos. Vimos como ordenar corretamente texto Unicode, usando o módulo padrão `locale`—com algumas restrições—e uma alternativa que não depende de complexas configurações de locale: a biblioteca((("pyuca library"))) externa _pyuca_.
1417
1417
1418
-
Usamos o banco de dados do Unicode para programar um utilitário de comando de linha que busca caracteres por nome--em 28 linha de código, graças ao poder do Python.
1418
+
Usamos o banco de dados do Unicode para programar um utilitário de comando de linha que busca caracteres por nome--em 28 linhas de código, graças ao poder do Python.
1419
1419
Demos uma olhada em outros metadados do Unicode, e vimos rapidamente as APIs de modo dual, onde algumas funções podem ser chamadas com argumentos `str` ou `bytes`, produzindo resultados diferentes.
1420
1420
1421
1421
@@ -1501,7 +1501,7 @@ ____
1501
1501
Essa definição começa muito bem, mas não concordo com a parte após a vírgula. HTML é um ótimo exemplo de um formato de texto puro que inclui informação estrutural e de formatação. Mas ele ainda é texto puro, porque cada byte em um arquivo desse tipo está lá para representar um caractere de texto, em geral usando UTF-8. Não há bytes com significado não-textual, como você encontra em documentos _.png_ ou _.xls_, onde a maioria dos bytes representa valores binários empacotados, como valores RGB ou números de ponto flutuante. No texto puro, números são representados como sequências de caracteres de dígitos.
1502
1502
1503
1503
Estou escrevendo esse livro em um formato de texto puro chamado—ironicamente— https://fpy.li/4-56[AsciiDoc],
1504
-
que é parte do conjunto de ferramentas do excelente https://fpy.li/4-57[Atlas book publishing platform (_paltaforma de publicação de livros Atlas_)] da O'Reilly. Os arquivos fonte de AsciiDoc são texto puro, mas são UTF-8, e não ASCII. Se fosse o contrário, escrever esse capítulo teria sido realmente doloroso. Apesar do nome, o AsciiDoc é muito bom.
1504
+
que é parte do conjunto de ferramentas do excelente https://fpy.li/4-57[Atlas book publishing platform (_plataforma de publicação de livros Atlas_)] da O'Reilly. Os arquivos fonte de AsciiDoc são texto puro, mas são UTF-8, e não ASCII. Se fosse o contrário, escrever esse capítulo teria sido realmente doloroso. Apesar do nome, o AsciiDoc é muito bom.
1505
1505
1506
1506
O mundo do Unicode está em constante expansão e, nas margens, as ferramentas de apoio nem sempre existem. Nem todos os caracteres que eu queria exibir estavam disponíveis nas fontes usadas para renderizar o livro.
1507
1507
Por isso tive que usar imagens em vez de listagens em vários exemplos desse capítulo.
0 commit comments