PythonAula 1508/09/20261h33
Listas, índices e laço `for`
Retoma repetição com while, contador com += e cálculo de média com somatório e round(). Até aqui guardar várias idades exigia uma variável por valor ou um texto único, sem manipular bem. Aqui destrava lista com [], índice começando em zero e len(), e o for como forma compacta de percorrer qualquer iterável.
O que foi falado
Primitivos e estruturas de dados
00:11:54Tipos básicos representam uma informação só, como texto, número inteiro, decimal, booleano e
None. Estruturas de dados guardam várias informações juntas e trazem recursos para manipular, como lista, tupla, set e dicionário. Em Python tudo é objeto, mas no dia a dia os básicos ainda são chamados de primitivos.Por que variável por idade falha
00:15:23Guardar cada idade numa variável diferente não deixa manipular o conjunto. Juntar tudo num texto único também não resolve, porque extrair cada idade exigiria fatiar pedaços e seria muito custoso. A saída é usar uma lista, que guarda vários valores numa variável só com começo e fim claros.
Ordem da lista e índice em
00:30:26idades[0]Uma lista é uma sequência onde a ordem importa, então trocar dois itens de lugar gera outra lista. Cada item tem uma posição chamada índice, e a contagem começa em zero, então o primeiro é
idades[0]e o segundo éidades[1]. Numa lista com 10 elementos o último índice é 9, por isso o último sempre éidades[len(idades) - 1].idades = [19, 20, 18] print(idades[0]) print(idades[len(idades) - 1])Saída
19 18
Declarar lista com
00:35:11[]e,A aula declara listas entre colchetes, com elementos separados por vírgulas, como [19, 20] e ["Ana", "Beto"]. Uma sequência como (19, 20) é tupla; {19, 20} é set, enquanto {} representa um dicionário vazio. Os delimitadores permitem escrever os elementos em várias linhas.
idades = [19, 20, 18, 25] nomes = ["Ana", "Beto"] print(idades) print(nomes)Saída
[19, 20, 18, 25] ['Ana', 'Beto']
Acessar com
00:52:42idades[i]elen()Para ler um item se usa a variável mais colchetes com o índice, como
idades[2]ouidades[7]. A funçãolen()devolve o tamanho sem contar na mão, comolen(idades). O último sempre éidades[len(idades) - 1]e tentar um índice que não existe, comoidades[100], interrompe comIndexError.idades = [19, 20, 18] print(len(idades)) print(idades[2]) print(idades[len(idades) - 1])Saída
3 18 18
Média com
01:09:37while,+=eround()Para a média se usa um
indicecomeçando em zero e repete enquantoindice < len(idades). A cada volta soma a idade atual numsomatorioque começou em zero usandosomatorio += idade_atual. No fim divide o total porlen(idades)e arredonda comround(media, 2)para arredondar para duas casas; a impressão numérica pode omitir zeros finais.idades = [19, 20, 18] somatorio = 0 indice = 0 while indice < len(idades): somatorio += idades[indice] indice += 1 print(round(somatorio / len(idades), 2))Saída
19.0
Iterar com
01:22:07forem vez dewhileO for percorre os elementos de um iterável, como lista, texto, tupla ou dicionário. Ele evita controlar um índice manualmente. A cada volta, atribui o próximo elemento à variável, como idade_atual. Depois de um laço que executou, essa variável continua disponível no mesmo escopo com o último valor atribuído.
idades = [19, 20, 18] for idade_atual in idades: print(idade_atual)Saída
19 20 18
Perguntas que valem a pena
Só [] cria lista? O que acontece se usar () ou {}?00:41:48
A aula usa colchetes para declarar listas, como [19, 20]. (19, 20) é uma tupla e {19, 20} é um set; {} é um dicionário vazio. As outras estruturas têm regras próprias.
Uma lista pode misturar tipos ou deve guardar só uma característica?00:44:51
Dá para misturar tipos, mas é má prática porque dificulta manipular. A recomendação é fazer lista só de números, só de textos ou só de booleanos.
Com mil índices, teria que pegar um por um?00:56:19
Não, dá para descobrir o tamanho da lista com a função len().
idades2 = idades cria uma lista nova ou aponta para a mesma?01:03:24
Aponta para a mesma lista, é tipo referenciado. Isso foi comprovado com id() igual para as duas variáveis.
Como funciona o somatório para calcular a média?01:17:20
O somatório começa em zero e a cada iteração soma a idade atual até o total. Depois divide por len(idades) para obter a média.
Onde idade_atual é declarada no for?01:31:04
O próprio for atribui cada elemento a idade_atual. Depois do laço, ela continua disponível no mesmo escopo se houve ao menos uma iteração.
Conceitos da aula
- lista
- elemento
- ordem
- índice começando em zero
- len()
- IndexError
- while
- for
- iterável
- somatório
- +=
- round()
Reforce este assunto
- Listas: criação, operações e repetiçãoPython · trilha, etapa 8
- Laços `for` e `while` com `range`, `break` e `continue`Python · trilha, etapa 7