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: online/cap17.adoc
+14-15Lines changed: 14 additions & 15 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -304,7 +304,7 @@ enquanto o valor `1` não é sorteado:
304
304
Observe que a função `iter` devolve um `callable_iterator`. O laço `for` no
305
305
exemplo pode rodar por um longo tempo, mas nunca vai devolver `1`, pois esse é o
306
306
valor sentinela. Como é comum com iteradores, o objeto `d6_iter` se torna inútil
307
-
após ser exaurido. Para recomeçar, é necessário reconstruir o iterador,
307
+
após ser esgotado. Para recomeçar, é necessário reconstruir o iterador,
308
308
invocando novamente `iter()`.
309
309
310
310
A https://fpy.li/97[«documentação de
@@ -400,7 +400,7 @@ C
400
400
<5> Sai do laço.
401
401
<6> Exibe `char`. Esta variável continua existindo depois do laço.
402
402
403
-
`StopIteration` sinaliza que o iterador foi exaurido.
403
+
`StopIteration` sinaliza que o iterador foi esgotado.
404
404
Esta exceção é tratada internamente pela função embutida `iter()`,
405
405
que é parte da lógica dos laços `for` e de outros contextos de iteração,
406
406
como compreensões de lista, desempacotamento de iteráveis, etc.
@@ -521,7 +521,7 @@ StopIteration
521
521
<2> Obtém um iterador a partir de `s3`.
522
522
<3> `next(it)` devolve a próxima palavra.
523
523
<4> Não há mais palavras, então o iterador gera uma exceção `StopIteration`.
524
-
<5> Uma vez exaurido, um iterador vai sempre lançar `StopIteration`,
524
+
<5> Uma vez esgotado, um iterador vai sempre lançar `StopIteration`,
525
525
indicando que não há mais itens.
526
526
<6> Para percorrer a sentença novamente é preciso criar um novo iterador.
527
527
@@ -531,7 +531,7 @@ não há como checar se há itens restantes, exceto invocando `next()` e captura
531
531
necessário começar de novo, é preciso invocar `iter()` no iterável que criou o
532
532
iterador original. Invocar `iter()` no próprio iterador também não funciona,
533
533
pois—como já mencionado—a implementação de `+Iterator.__iter__+`
534
-
apenas devolve `self`, e isso não reinicia um iterador exaurido.
534
+
apenas devolve `self`, e isso não reinicia um iterador esgotado.
535
535
536
536
Essa interface mínima é bastante razoável porque, na realidade, nem todos os
537
537
iteradores são reiniciáveis. Por exemplo, se um iterador está lendo pacotes da
@@ -1291,26 +1291,25 @@ A seção de console no <<demo_filter_genfunc>> demonstra o uso das funções de
1291
1291
====
1292
1292
1293
1293
O((("mappings", "mapping generator functions"))) grupo seguinte contém os
1294
-
geradores de mapeamento. O termo "mapeamento" aqui não está relacionado a
1295
-
dicionários, mas com a função embutida `map`. Este grupo de funções produzem
1294
+
geradores de transformação. Este grupo de funções produzem
1296
1295
itens computados a partir de cada item individual no iterável de entrada—ou
1297
1296
iteráveis, nos casos de `map` e `starmap`.
1298
1297
Se a entrada vier de mais de um iterável, a saída para assim que o primeiro
1299
-
iterável de entrada for exaurido.
1298
+
iterável de entrada for esgotado.
1300
1299
1301
1300
[[mapping_genfunc_tbl]]
1302
-
.Funções geradoras de mapeamento (embutidas)
1301
+
.Funções geradoras de transformação (embutidas)
1303
1302
[options="header", cols="7,10"]
1304
1303
|============================
1305
1304
|Função|Descrição
1306
1305
|`enumerate(iterable, start=0)`|Produz tuplas de dois itens na forma `(index, item)`, onde `index` é contado a partir de `start`, e `item` é obtido do `iterable`
1307
1306
|`map(func, it1, [it2, …, itN])`|Aplica `func` a cada item de `it`, produzindo o resultado; se forem fornecidos N iteráveis, `func` deve aceitar N argumentos, e os iteráveis serão consumidos em paralelo
1308
1307
|============================
1309
1308
1310
-
O módulo `itertools` oferece mais duas funções geradoras de mapeamento:
1309
+
O módulo `itertools` oferece mais duas funções geradoras de transformação:
1311
1310
1312
1311
[[mapping_genfunc_itertools_tbl]]
1313
-
.`itertools`: funções geradoras de mapeamento
1312
+
.`itertools`: funções geradoras de transformação
1314
1313
[options="header", cols="4,9"]
1315
1314
|==========================
1316
1315
|Função|Descrição
@@ -1347,10 +1346,10 @@ O <<demo_accumulate_genfunc>> demonstra alguns usos de `itertools.accumulate`.
1347
1346
<4> Produto acumulado.
1348
1347
<5> Fatoriais de `1!` a `10!`.
1349
1348
1350
-
As demais funçnoes de mapeamento são demonstradas no <<demo_mapping_genfunc>>.
1349
+
As demais funçnoes de transformação são demonstradas no <<demo_mapping_genfunc>>.
1351
1350
1352
1351
[[demo_mapping_genfunc]]
1353
-
.Exemplos de funções geradoras de mapeamento
1352
+
.Exemplos de funções geradoras de transformação
1354
1353
====
1355
1354
[source, python]
1356
1355
----
@@ -1386,7 +1385,7 @@ Elas mesclam os itens de vários iteráveis de entrada.
1386
1385
O exemplo mais conhecido é a função embutida `zip`:
1387
1386
1388
1387
`zip(it1, …, itN, strict=False)`::
1389
-
Produz tuplas de N elementos criadas a partir de itens obtidos dos iteráveis em paralelo, terminando silenciosamente quando o menor iterável é exaurido, a menos que `strict=True` for passado (a partir do Python 3.10). Quando `strict=True`, um `ValueError` é gerado se algum iterável esgotar antes dos outros. O default é `False`, para manter a compatibilidade retroativa.
1388
+
Produz tuplas de N elementos criadas a partir de itens obtidos dos iteráveis em paralelo, terminando silenciosamente quando o menor iterável é esgotado, a menos que `strict=True` for passado (a partir do Python 3.10). Quando `strict=True`, um `ValueError` é gerado se algum iterável esgotar antes dos outros. O default é `False`, para manter a compatibilidade retroativa.
1390
1389
1391
1390
Na <<merging_genfunc_tbl>>, vale notar que `chain` e `chain.from_iterable`
1392
1391
consomem os iteráveis de entrada um após o outro, enquanto `product`, e
@@ -1401,7 +1400,7 @@ consomem os iteráveis de entrada um após o outro, enquanto `product`, e
1401
1400
|`chain(it1, …, itN)`|Produz todos os itens de `it1`, a seguir de `it2`, etc., continuamente.
1402
1401
|`chain.from_iterable(it)`|Produz todos os itens de cada iterável produzido por `it`, um após o outro, continuamente; `it` é um iterável cujos itens também são iteráveis, uma lista de tuplas, por exemplo
1403
1402
|`product(it1, …, itN, repeat=1)`|Produto cartesiano: produz tuplas de N elementos criadas combinando itens de cada iterável de entrada, como laços `for` aninhados produziriam; `repeat` permite que os iteráveis de entrada sejam consumidos mais de uma vez
1404
-
|`zip_longest(it1, …, itN, fillvalue=None)`|Produz tuplas de N elementos criadas a partir de itens obtidos dos iteráveis em paralelo, terminando apenas quando o último iterável for exaurido, preenchendo os itens ausentes com o `fillvalue`
1403
+
|`zip_longest(it1, …, itN, fillvalue=None)`|Produz tuplas de N elementos criadas a partir de itens obtidos dos iteráveis em paralelo, terminando apenas quando o último iterável for esgotado, preenchendo os itens ausentes com o `fillvalue`
1405
1404
|===================
1406
1405
1407
1406
O <<demo_merging_genfunc>> demonstra o uso das funções geradoras
@@ -1819,7 +1818,7 @@ Podemos obter o mesmo resultado usando `yield from`, como se vê no <<ex_simple_
1819
1818
1820
1819
No <<ex_simple_yield_from>>, o((("delegating generators")))((("subgenerators")))((("client codes"))) laço `for` é o _código cliente_,
1821
1820
`gen` é o _gerador delegante_ e `sub_gen` é o _subgerador_.
1822
-
Observe que `yield from` suspende `gen`, e `sub_gen` toma o controle até se exaurir.
1821
+
Observe que `yield from` suspende `gen`, e `sub_gen` toma o controle até se esgotar.
1823
1822
Os valores produzidos por `sub_gen` passam através de `gen` diretamente para o laço `for` cliente.
1824
1823
Enquanto isso, `gen` está suspenso e não pode ver os valores que passam por ele.
0 commit comments