villares / material-aulas

Material para ensino introdutório de programação com Python em um contexto visual
https://abav.lugaralgum.com/material-aulas/
97 stars 70 forks source link

"acho que ainda não conheço isso" #88

Closed ao-gugae closed 3 years ago

ao-gugae commented 3 years ago

Caro Professor Villares, boa tarde.

Gostaria de compartilhar a experiência que tive na leitura da seção "Enumerando os itens da sequência" no capitulo Sequências e laços de repetição.

Ate este ponto, todos os elementos que vinham sendo utilizados para a construção dos códigos já haviam sido previamente apresentados, quando pensamos na ordem cronológica da leitura -por exemplo o uso de Tuplas e listas do código antecessor-.

No entanto, para a apresentação da função "enumerate()" foi necessário o uso da estrutura {dicionário} que ainda não havia sido apresentada. acho que seria importante adicionar um apêndice à leitura desta pagina ou um link para a compreensão desta estrutura e também da função format() que demandou o seu uso. uma pesquisa rápida me encaminhou ao site que encaminho em anexo, mas me pergunto se não seria um daqueles temas que, como o senhor gosta de dizer, devemos nos preocupar mais a frente.

https://docs.python.org/pt-br/3/tutorial/inputoutput.html

Espero que tenha contribuído com a construção do material, que pretendo continuar utilizando. Gustavo Gomes dos Santos

villares commented 3 years ago

Salve @ao-gugae muito obrigado pelo comentário!

É um super desafio mesmo isso de tentar explicar coisas que dependem umas das outras... O caso do .format() achei que ia ter uma licença poética de "devemos nos preocupar mais a frente.", mas pelo visto deu uma bela de uma confusão, pois o enumerate() não tem relação com dicionários não! Preciso dar uma melhorada nisso!

Por favor, Gustavo, veja se assim ajuda, fica mais simples e claro:

for i, ponto in enumerate(pontos):
        # enumerate vai nos entregar uma sequência de tuplas: (índice, item_da_coleção)
        x, y = ponto  
        fill(255)
        ellipse(x, y, 5 + i * 5, 5 + i * 5)
        label = str(i) + ": " + str(x) + ", " + str(y)  # monta um string no formato «i:  x, y»
        fill(0)
        text(label, x + 15, y)

# Você também pode encontrar escrito assim «for i, (x, y) in enumerate(pontos):»
# E a construção «label = "{}: {}, {}".format(i, x, y)» para o texto 

Tirei a construção com as chaves ,"{}: {}, {}".format(i, x, y), pois pode ser difícl entender nesse momento o format que é um método que "injeta" os valores nas posições marcadas com {}. Confira se faz mais sentido em:

villares commented 3 years ago

Oi @ao-gugae, vou encerrar aqui, se achar que as mudanças não foram suficientes, podemos reabrir esta issue e pensar em algo diferente...