From 2867fd5fc1ad3dafec50ebaa8a528e2e61a29124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariana=20J=C3=B3?= Date: Wed, 3 Sep 2025 23:19:58 -0300 Subject: [PATCH 1/2] errata: adiciona ponto final nos exemplos online. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A descrição de todos os exemplos do capítulo estavam sem ponto final. O commit adiciona a pontuação para a versão online do texto. --- online/cap07.adoc | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/online/cap07.adoc b/online/cap07.adoc index 8a9433e..7817329 100644 --- a/online/cap07.adoc +++ b/online/cap07.adoc @@ -72,7 +72,7 @@ Ali criamos uma função, a chamamos, lemos seu atributo `+__doc__+` e verificamos que o próprio objeto função é uma instância da classe `function`. [[func_object_demo]] -.Cria e testa uma função, e então lê seu `+__doc__+` e verifica seu tipo +.Cria e testa uma função, e então lê seu `+__doc__+` e verifica seu tipo. ==== [source, python] ---- @@ -108,7 +108,7 @@ com elementos sucessivos do segundo argumento (um iterável), `range(11)` no exe [[func_object_demo2]] -.Invoca `factorial` através da variável `fact`, e passa `factorial` como argumento para `map` +.Invoca `factorial` através da variável `fact`, e passa `factorial` como argumento para `map`. ==== [source, python] ---- @@ -140,7 +140,7 @@ o argumento opcional `key` permite fornecer uma função, que será então aplic Por exemplo, para ordenar uma lista de palavras por tamanho, passe a função `len` como `key`, como no <>. [[higher_order_sort]] -.Ordenando uma lista de palavras por tamanho +.Ordenando uma lista de palavras por tamanho. ==== [source, python] ---- @@ -158,7 +158,7 @@ apenas suas versões escritas na ordem inversa são utilizadas como critério de Por isso as _berries_ aparecem juntas. [[higher_order_sort_reverse]] -.Ordenando uma lista de palavras pela ordem inversa de escrita +.Ordenando uma lista de palavras pela ordem inversa de escrita. ==== [source, python] ---- @@ -194,7 +194,7 @@ Considere o <>. [[reduce_x_sum]] -.Listas de fatoriais produzidas com `map` e `filter`, comparadas com alternativas escritas com compreensões de lista +.Listas de fatoriais produzidas com `map` e `filter`, comparadas com alternativas escritas com compreensões de lista. ==== [source, python] ---- @@ -225,7 +225,7 @@ disponível desde o Python 2.3 (lançado em 2003). A função `sum` é mais legível e mais eficiente: [[reduce_x_sum2]] -.Soma de inteiros até 99, realizada com `reduce` e `sum` +.Soma de inteiros até 99, realizada com `reduce` e `sum`. ==== [source, python] ---- @@ -286,7 +286,7 @@ Por exemplo, o <> é o exemplo do dicionário <> reescrito com `lambda`, sem definir uma função `reverse`. [[higher_order_sort_reverse_lambda]] -.Ordenando uma lista de palavras escritas na ordem inversa usando `lambda` +.Ordenando uma lista de palavras escritas na ordem inversa usando `lambda`. ==== [source, python] ---- @@ -388,7 +388,7 @@ Invocar a instância extrai um item.footnote:[Por que criar uma `BingoCage` quan Invocações de `BingoCage` nunca devolvem um resultado duplicado—desde que a instância tenha sido preenchida com valores únicos.] [[ex_bingo_callable]] -.bingocall.py: Uma `BingoCage` faz apenas uma coisa: escolhe itens de uma lista embaralhada +.bingocall.py: Uma `BingoCage` faz apenas uma coisa: escolhe itens de uma lista embaralhada. ==== [source, py] ---- @@ -432,7 +432,7 @@ desempacotar e capturar iteráveis e mapeamentos em argumentos separados na cham Para ver esses recursos em ação, veja o código do <> e os testes mostrando seu uso no <>. [[tagger_ex]] -.`tag` gera elementos HTML; um argumento somente nomeado `class_` é usado para passar atributos "class"; o `_` é necessário porque `class` é uma palavra reservada no Python +.`tag` gera elementos HTML; um argumento somente nomeado `class_` é usado para passar atributos "class"; o `_` é necessário porque `class` é uma palavra reservada no Python. ==== [source, py] ---- @@ -443,7 +443,7 @@ include::../code/07-1class-func/tagger.py[tags=TAG_FUNC] A função `tag` pode ser invocada de muitas formas, como demonstra o <>. [[tagger_demo]] -.Algumas das muitas formas de invocar a função `tag` do <> +.Algumas das muitas formas de invocar a função `tag` do <>. ==== [source, py] ---- @@ -533,7 +533,7 @@ Você poderia usar ``reduce``—como vimos na <>—mas isso e O <> mostra como resolver esse problema usando `lambda`. [[fact_reduce_lambda_ex]] -.Fatorial implementado com `reduce`e uma função anônima +.Fatorial implementado com `reduce`e uma função anônima. ==== [source, python] ---- @@ -549,7 +549,7 @@ para você não precisar escrever funções triviais como `lambda a, b: a*b`. Com ele, podemos reescrever o <> como no <>. [[fact_reduce_operator_ex]] -.Fatorial implementado com `reduce` e `operator.mul` +.Fatorial implementado com `reduce` e `operator.mul`. ==== [source, python] ---- @@ -570,7 +570,7 @@ Essencialmente, `itemgetter(1)` cria uma função que, dada uma coleção, devol Isso é mais fácil de escrever e ler que `lambda fields: fields[1]`, que faz a mesma coisa. [[itemgetter_demo]] -.Demonstração de `itemgetter` para ordenar uma lista de tuplas (mesmos dados do <>) +.Demonstração de `itemgetter` para ordenar uma lista de tuplas (mesmos dados do <>). ==== [source, python] ---- @@ -620,7 +620,7 @@ navegará por objetos aninhados para encontrar o atributo. Esses comportamento são apresentados no <>. Não é exatamente uma sessão de console curta, pois precisamos criar uma estrutura aninhada para demonstrar o tratamento de atributos com `.` por `attrgetter`. [[attrgetter_demo]] -.Demonstração de `attrgetter` para processar uma lista previamente definida de `namedtuple` chamada `metro_data` (a mesma lista que aparece no <>) +.Demonstração de `attrgetter` para processar uma lista previamente definida de `namedtuple` chamada `metro_data` (a mesma lista que aparece no <>). ==== [source, python] ---- @@ -683,7 +683,7 @@ Ela é algo similar a `attrgetter` e `itemgetter`, no sentido de criarem uma fun A função criada invoca por nome um método do objeto passado como argumento, como mostra o <>. [[methodcaller_demo]] -.Demonstração de `methodcaller`: o segundo teste mostra a vinculação de argumentos adicionais +.Demonstração de `methodcaller`: o segundo teste mostra a vinculação de argumentos adicionais. ==== [source, python] ---- @@ -718,7 +718,7 @@ Isso é útil para adaptar uma função que recebe um ou mais argumentos a uma A O <> é uma demonstração trivial. [[ex_partial_mul]] -.Empregando `partial` para usar uma função com dois argumentos onde é necessário um invocável com apenas um argumento +.Empregando `partial` para usar uma função com dois argumentos onde é necessário um invocável com apenas um argumento. ==== [source, python] ---- @@ -738,7 +738,7 @@ O <> é uma demonstração trivial. Um exemplo mais útil envolve a função `unicode.normalize`, que vimos na <>. Se você trabalha com texto em muitas línguas diferentes, pode querer aplicar `unicode.normalize('NFC', s)` a qualquer string `s`, antes de compará-la ou armazená-la. Se você precisa disso com frequência, é conveninete ter uma função `nfc` para executar essa tarefa, como no <>. [[ex_partial_nfc]] -.Criando uma função conveniente para normalizar Unicode com `partial` +.Criando uma função conveniente para normalizar Unicode com `partial`. ==== [source, python] ---- @@ -760,7 +760,7 @@ True O <> mostra o uso de `partial` com a função `tag` (do <>), para fixar um argumento posicional e um argumento nomeado. [[partial_demo]] -.Demonstração de `partial` aplicada à função `tag`, do <> +.Demonstração de `partial` aplicada à função `tag`, do <>. ==== [source, python] ---- From 067992732102964828d2df1a51415b2596e13219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mariana=20J=C3=B3?= Date: Wed, 3 Sep 2025 23:21:53 -0300 Subject: [PATCH 2/2] errata pythonfluente#132: cap7, ponto final em exemplos MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit O commit adiciona ponto final nas descrições dos exemplos do capítulo 7 para versão impressa. Fecha issue #132. --- vol1/cap07.adoc | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/vol1/cap07.adoc b/vol1/cap07.adoc index 78f1ed9..ac801eb 100644 --- a/vol1/cap07.adoc +++ b/vol1/cap07.adoc @@ -72,7 +72,7 @@ Ali criamos uma função, a chamamos, lemos seu atributo `+__doc__+` e verificamos que o próprio objeto função é uma instância da classe `function`. [[func_object_demo]] -.Cria e testa uma função, e então lê seu `+__doc__+` e verifica seu tipo +.Cria e testa uma função, e então lê seu `+__doc__+` e verifica seu tipo. ==== [source, python] ---- @@ -108,7 +108,7 @@ com elementos sucessivos do segundo argumento (um iterável), `range(11)` no exe [[func_object_demo2]] -.Invoca `factorial` através da variável `fact`, e passa `factorial` como argumento para `map` +.Invoca `factorial` através da variável `fact`, e passa `factorial` como argumento para `map`. ==== [source, python] ---- @@ -140,7 +140,7 @@ o argumento opcional `key` permite fornecer uma função, que será então aplic Por exemplo, para ordenar uma lista de palavras por tamanho, passe a função `len` como `key`, como no <>. [[higher_order_sort]] -.Ordenando uma lista de palavras por tamanho +.Ordenando uma lista de palavras por tamanho. ==== [source, python] ---- @@ -158,7 +158,7 @@ apenas suas versões escritas na ordem inversa são utilizadas como critério de Por isso as _berries_ aparecem juntas. [[higher_order_sort_reverse]] -.Ordenando uma lista de palavras pela ordem inversa de escrita +.Ordenando uma lista de palavras pela ordem inversa de escrita. ==== [source, python] ---- @@ -194,7 +194,7 @@ Considere o <>. [[reduce_x_sum]] -.Listas de fatoriais produzidas com `map` e `filter`, comparadas com alternativas escritas com compreensões de lista +.Listas de fatoriais produzidas com `map` e `filter`, comparadas com alternativas escritas com compreensões de lista. ==== [source, python] ---- @@ -225,7 +225,7 @@ disponível desde o Python 2.3 (lançado em 2003). A função `sum` é mais legível e mais eficiente: [[reduce_x_sum2]] -.Soma de inteiros até 99, realizada com `reduce` e `sum` +.Soma de inteiros até 99, realizada com `reduce` e `sum`. ==== [source, python] ---- @@ -286,7 +286,7 @@ Por exemplo, o <> é o exemplo do dicionário <> reescrito com `lambda`, sem definir uma função `reverse`. [[higher_order_sort_reverse_lambda]] -.Ordenando uma lista de palavras escritas na ordem inversa usando `lambda` +.Ordenando uma lista de palavras escritas na ordem inversa usando `lambda`. ==== [source, python] ---- @@ -392,7 +392,7 @@ Invocar a instância extrai um item.footnote:[Por que criar uma `BingoCage` quan Invocações de `BingoCage` nunca devolvem um resultado duplicado—desde que a instância tenha sido preenchida com valores únicos.] [[ex_bingo_callable]] -.bingocall.py: Uma `BingoCage` faz apenas uma coisa: escolhe itens de uma lista embaralhada +.bingocall.py: Uma `BingoCage` faz apenas uma coisa: escolhe itens de uma lista embaralhada. ==== [source, py] ---- @@ -436,7 +436,7 @@ desempacotar e capturar iteráveis e mapeamentos em argumentos separados na cham Para ver esses recursos em ação, veja o código do <> e os testes mostrando seu uso no <>. [[tagger_ex]] -.`tag` gera elementos HTML; um argumento somente nomeado `class_` é usado para passar atributos "class"; o `_` é necessário porque `class` é uma palavra reservada no Python +.`tag` gera elementos HTML; um argumento somente nomeado `class_` é usado para passar atributos "class"; o `_` é necessário porque `class` é uma palavra reservada no Python. ==== [source, py] ---- @@ -447,7 +447,7 @@ include::../code/07-1class-func/tagger.py[tags=TAG_FUNC] A função `tag` pode ser invocada de muitas formas, como demonstra o <>. [[tagger_demo]] -.Algumas das muitas formas de invocar a função `tag` do <> +.Algumas das muitas formas de invocar a função `tag` do <>. ==== [source, py] ---- @@ -537,7 +537,7 @@ Você poderia usar ``reduce``—como vimos na <>—mas isso e O <> mostra como resolver esse problema usando `lambda`. [[fact_reduce_lambda_ex]] -.Fatorial implementado com `reduce`e uma função anônima +.Fatorial implementado com `reduce`e uma função anônima. ==== [source, python] ---- @@ -553,7 +553,7 @@ para você não precisar escrever funções triviais como `lambda a, b: a*b`. Com ele, podemos reescrever o <> como no <>. [[fact_reduce_operator_ex]] -.Fatorial implementado com `reduce` e `operator.mul` +.Fatorial implementado com `reduce` e `operator.mul`. ==== [source, python] ---- @@ -574,7 +574,7 @@ Essencialmente, `itemgetter(1)` cria uma função que, dada uma coleção, devol Isso é mais fácil de escrever e ler que `lambda fields: fields[1]`, que faz a mesma coisa. [[itemgetter_demo]] -.Demonstração de `itemgetter` para ordenar uma lista de tuplas (mesmos dados do <>) +.Demonstração de `itemgetter` para ordenar uma lista de tuplas (mesmos dados do <>). ==== [source, python] ---- @@ -624,7 +624,7 @@ navegará por objetos aninhados para encontrar o atributo. Esses comportamentos são apresentados no <>. Não é exatamente uma sessão de console curta, pois precisamos criar uma estrutura aninhada para demonstrar o tratamento de atributos com `.` por `attrgetter`. [[attrgetter_demo]] -.Demonstração de `attrgetter` para processar uma lista previamente definida de `namedtuple` chamada `metro_data` (a mesma lista que aparece no <>) +.Demonstração de `attrgetter` para processar uma lista previamente definida de `namedtuple` chamada `metro_data` (a mesma lista que aparece no <>). ==== [source, python] ---- @@ -687,7 +687,7 @@ Ela é algo similar a `attrgetter` e `itemgetter`, no sentido de criar uma funç A função criada invoca por nome um método do objeto passado como argumento, como mostra o <>. [[methodcaller_demo]] -.Demonstração de `methodcaller`: o segundo teste mostra a vinculação de argumentos adicionais +.Demonstração de `methodcaller`: o segundo teste mostra a vinculação de argumentos adicionais. ==== [source, python] ---- @@ -722,7 +722,7 @@ Isso é útil para adaptar uma função que recebe um ou mais argumentos a uma A O <> é uma demonstração trivial. [[ex_partial_mul]] -.Empregando `partial` para usar uma função com dois argumentos onde é necessário um invocável com apenas um argumento +.Empregando `partial` para usar uma função com dois argumentos onde é necessário um invocável com apenas um argumento. ==== [source, python] ---- @@ -742,7 +742,7 @@ O <> é uma demonstração trivial. Um exemplo mais útil envolve a função `unicode.normalize`, que vimos na <>. Se você trabalha com texto em muitas línguas diferentes, pode querer aplicar `unicode.normalize('NFC', s)` a qualquer string `s`, antes de compará-la ou armazená-la. Se você precisa disso com frequência, é conveniente ter uma função `nfc` para executar essa tarefa, como no <>. [[ex_partial_nfc]] -.Criando uma função conveniente para normalizar Unicode com `partial` +.Criando uma função conveniente para normalizar Unicode com `partial`. ==== [source, python] ---- @@ -764,7 +764,7 @@ True O <> mostra o uso de `partial` com a função `tag` (do <>), para fixar um argumento posicional e um argumento nomeado. [[partial_demo]] -.Demonstração de `partial` aplicada à função `tag`, do <> +.Demonstração de `partial` aplicada à função `tag`, do <>. ==== [source, python] ----