@@ -24,7 +24,7 @@ A iteração((("iterators", "role of"))) é fundamental para o processamento de
2424dados: programas aplicam computações sobre séries de dados, de pixels a
2525nucleotídeos. Se os dados não cabem na memória, precisamos buscar esses itens de
2626forma _preguiçosa_—um de cada vez e sob demanda. É isso que um iterador faz.
27- Este capítulo mostra como o padrão de projeto _Iterator_ (" Iterador" ) está
27+ Este capítulo mostra como o padrão de projeto _Iterator_ (Iterador) está
2828embutido na linguagem Python, de modo que nunca será necessário programá-lo
2929manualmente.
3030
@@ -54,7 +54,7 @@ ou por uma expressão geradora
5454
5555* Usando expressões `yield from` para combinar geradores
5656
57- * Porque geradores e corrotinas clássicas se parecem, mas são usadas de formas
57+ * Porque geradores e corrotinas clássicas se parecem, mas são usados de formas
5858muito diferentes e não devem ser misturadas
5959
6060
@@ -90,8 +90,8 @@ o protocolo de sequência e será iterável, pois todas as sequências são
9090iteráveis—como sabemos desde o <<ch_data_model>>. Agora veremos exatamente
9191porque isso acontece.
9292
93- O <<ex_sentence0>> mostra uma classe `Sentence` que extrai palavras de um texto
94- por índice.
93+ O <<ex_sentence0>> mostra uma classe `Sentence` que permite
94+ ler as palavras de um texto por índice.
9595
9696[[ex_sentence0]]
9797.sentence.py: `Sentence` como uma sequência de palavras
143143
144144<1> Uma sentença criada a partir de uma string.
145145
146- <2> Observe a saída de `+__repr__+` gerada por `reprlib.repr`, usando `\...`.
146+ <2> Observe a saída de `+__repr__+` gerada por `reprlib.repr`, usando `' \...' `.
147147
148148<3> Instâncias de `Sentence` são iteráveis; veremos a razão em seguida.
149149
@@ -174,7 +174,7 @@ startref="seqpro17")))
174174
175175Para((("functions", "iter() function")))((("iterators", "iter() function",
176176id="Iinterfun17")))((("iter() function", id="iterfunc17")))
177- iterar sobre um objeto `x`, o interpretador Python `iter(x)`.
177+ iterar sobre um objeto `x`, o interpretador Python invoca `iter(x)`.
178178
179179A função embutida `iter`:
180180
@@ -190,10 +190,9 @@ not iterable` ("objeto 'C' não é iterável"), onde `C` é a classe do objeto a
190190Por isso todas as sequências de Python são iteráveis: por definição, todas
191191implementam `+__getitem__+`. Na verdade, todas as sequências padrão também
192192implementam `+__iter__+`, e as classes de sequências que você criar também devem
193- implementar esse método. A iteração via `+__getitem__+` existe para
194- manter a compatibilidade retroativa, e pode desaparecer em algum momento—apesar
195- dela não ter sido descontinuada no Python 3.10, e eu duvidar que vá ser removida
196- algum dia.
193+ implementar este método. A iteração automática via `+__getitem__+` existe para
194+ manter a compatibilidade retroativa, e pode desaparecer em algum momento—mas
195+ eu duvido que será removida no futuro.
197196
198197Como mencionado na <<python_digs_seq_sec>>, esta é uma forma extrema de tipagem pato:
199198um objeto é considerado iterável não apenas quando implementa o método
@@ -259,19 +258,19 @@ considera tal método.
259258
260259Verificar explicitamente se um objeto é iterável pode não valer a pena, se você
261260for iterar sobre o objeto logo após a checagem. Afinal, quando se tenta iterar
262- sobre um não-iterável, a exceção gerada pelo Python é bastante clara :
261+ sobre um não-iterável, a exceção gerada pelo Python é bem explícita :
263262`TypeError: 'C' object is not iterable` (TypeError: o objeto 'C' não é
264- iterável). Se você puder fazer algo mais além de gerar um `TypeError`, então
263+ iterável). Se você quiser fazer algo além de gerar um `TypeError`, então
265264faça isso em um bloco `try/except` ao invés de realizar uma checagem explícita.
266265A checagem explícita pode fazer sentido se você estiver guardando o objeto para
267- iterar sobre ele mais tarde; neste caso, falhar logo facilita o diagnóstico de falhas .
266+ iterar sobre ele mais tarde; neste caso, falhar logo facilita o diagnóstico de erros .
268267
269268A função embutida `iter()` é usada mais frequentemente pelo Python que no nosso
270269código. Há uma segunda maneira de usá-la, mas não é muito conhecida.
271270
272271
273272[[iter_closer_look_sec]]
274- ==== Usando iter com um invocável
273+ ==== Usando ` iter` com um invocável
275274
276275Podemos((("objects", "callable objects", id="Oiter17")))((("callable objects",
277276"using iter() with", id="COiter17"))) chamar `iter()` com dois argumentos, para
@@ -282,8 +281,8 @@ https://fpy.li/17-2[«sentinel value»] (valor sentinela): um valor que, quando
282281pelo invocável, faz o iterador gerar um `StopIteration` ao invés de produzir o
283282valor sentinela.
284283
285- O exemplo a seguir mostra como usar `iter` para rolar um dado de seis faces até
286- que o valor `1` seja sorteado:
284+ O exemplo a seguir mostra como usar `iter` para rolar um dado de seis faces
285+ enquanto o valor `1` não é sorteado:
287286
288287[source, python]
289288----
@@ -308,16 +307,16 @@ valor sentinela. Como é comum com iteradores, o objeto `d6_iter` se torna inút
308307após ser exaurido. Para recomeçar, é necessário reconstruir o iterador,
309308invocando novamente `iter()`.
310309
311- A https://fpy.li/97[documentação de
312- `iter`] inclui a seguinte explicação e código de exemplo:footnote:[NT:
310+ A https://fpy.li/97[« documentação de
311+ `iter`» ] inclui a seguinte explicação e código de exemplo:footnote:[NT:
313312Mudei um pouco a tradução, e
314313https://fpy.li/98[«sugeri a melhoria»] no
315314repositório oficial da tradução PT-BR da documentação do Python.]
316315
317316[quote]
318317____
319318
320- Uma aplicação útil da segunda forma de `iter()` é para construir um
319+ Uma aplicação útil da segunda forma de `iter()` é construir um
321320leitor bloco-a-bloco (_block reader_).
322321Por exemplo, ler blocos de 64 bytes do arquivo binário de um de banco de dados
323322até que o final do arquivo seja atingido:
@@ -356,7 +355,7 @@ definição:
356355
357356iterável:: Qualquer objeto a partir do qual a função embutida `iter` consegue
358357obter um iterador. Objetos que implementam um método `+__iter__+` devolvendo um
359- _iterador_ são iteráveis. Sequências são sempre iteráveis, bem como objetos que
358+ iterador são iteráveis. Sequências são sempre iteráveis, bem como objetos que
360359implementam um método `+__getitem__+` que aceite índices iniciando em 0.
361360
362361É importante deixar clara a relação entre iteráveis e iteradores: Python obtém
0 commit comments