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