Vetores
(arrays)
Tudo sobre vetores em uma aula: uma variável que guarda muitos valores — declarar, indexar a partir do zero, percorrer, buscar e calcular estatísticas.
Tudo sobre vetores em uma aula: uma variável que guarda muitos valores — declarar, indexar a partir do zero, percorrer, buscar e calcular estatísticas.
Entender o que é um vetor e a indexação base 0
Declarar, acessar e alterar vetores em Python, usando len()
Fazer o percurso sequencial com for e while
Aplicar busca linear e estatísticas (soma, média, maior, menor)
Um vetor é uma estrutura linear que guarda vários valores do mesmo tipo em uma única variável — notas, idades, temperaturas. Cada valor ocupa uma posição que pode ser lida ou alterada.
notas = [7.5, 8.0, 6.5, 9.0, 7.0]. Assim notas[3] devolve 9.0 — e o mesmo código funciona para 5 ou 500 valores.
O primeiro elemento não está na posição 1, mas na posição 0. O segundo na 1, o terceiro na 2, e assim por diante.
# Criar e acessar
idades = [14, 15, 16]
print(idades[0]) # 14
print(idades[2]) # 16
print(len(idades)) # 3 → tamanho
# Alterar e iniciar vazio
idades[0] = 18 # posição 0 vira 18
print(idades) # [18, 15, 16]
nomes = [] # lista vazia
print(len(nomes)) # 0
| Operação | Código | Resultado |
|---|---|---|
| Acessar | idades[1] | 15 |
| Alterar | idades[0] = 18 | troca o 1º |
| Tamanho | len(idades) | 3 |
| Último item | idades[len(idades) - 1] | o do fim |
Percorrer é visitar cada posição em ordem, uma a uma. O for já sabe onde parar; no while, você controla o índice.
# for — percorre por índice
notas = [7.5, 8.0, 6.5, 9.0]
for i in range(len(notas)):
print(i, "->", notas[i])
# while — você controla o índice
notas = [7.5, 8.0, 6.5, 9.0]
i = 0
while i < len(notas):
print(i, "->", notas[i])
i = i + 1
0 e param antes de len(notas). range(len(notas)) gera 0, 1, 2, 3 — nunca o 4.
i = 0
while i < len(notas):
print(notas[i])
i += 1
Com 4 elementos, visita 0, 1, 2, 3 e para. Nenhum índice inválido.
i = 0
while i <= len(notas): # <= estoura!
print(notas[i])
# esqueceu o i += 1 → laço infinito
Com <= tenta ler notas[4] → IndexError. Sem incremento → laço infinito.
0; (2) a condição é <, não <=.
A busca linear percorre o vetor posição por posição, comparando cada valor com o procurado, até achar ou chegar ao fim. Simples e eficiente para conjuntos pequenos.
notas = [7.5, 8.0, 6.5, 9.0, 7.0]
procurado = 9.0
pos = -1 # -1 = "ainda não achei"
for i in range(len(notas)):
if notas[i] == procurado:
pos = i
break # achou, pode parar
print("Achei na posição", pos) if pos != -1 else print("Não encontrado")
Todo cálculo em vetor é um acumulador: criar antes do laço, atualizar dentro, usar depois.
notas = [7.5, 8.0, 6.5, 9.0, 7.0]
soma = 0
maior = menor = notas[0]
for i in range(len(notas)):
soma = soma + notas[i]
if notas[i] > maior: maior = notas[i]
if notas[i] < menor: menor = notas[i]
media = soma / len(notas)
print("Média:", media, "| Maior:", maior, "| Menor:", menor)
sum(), max() e min() prontos.
Por que a condição i < len(lista) é a mais usada ao percorrer listas?
0 a N−1. A condição encerra o laço exatamente antes de N, impedindo o IndexError.
Um vetor com as 7 temperaturas da semana. Um único percurso responde tudo: média, dia mais quente e se algum dia bateu 25°.
Criem o vetor temps com as 7 temperaturas (podem inventar).
Calculem a média com um acumulador e len(temps).
Achem o dia mais quente: comecem com maior = temps[0].
Façam uma busca pelo valor 25 e digam em que dia apareceu — ou que não houve.
Testem os limites: todos os valores iguais e o 25 ausente.
temps = [22, 25, 19, 31, 28, 25, 20]
soma = 0
maior = temps[0]
dia_25 = -1
for i in range(len(temps)):
soma = soma + temps[i] # acumula p/ média
if temps[i] > maior:
maior = temps[i] # guarda o mais quente
if temps[i] == 25 and dia_25 == -1:
dia_25 = i # 1ª ocorrência do 25
media = soma / len(temps)
print("Média:", round(media, 1), "| Mais quente:", maior)
if dia_25 != -1:
print("Bateu 25° no dia", dia_25 + 1)
else:
print("Nenhum dia com 25°")
soma (média), maior (dia mais quente) e dia_25 (busca) atualizados na mesma volta. O -1 marca "ainda não achei".
| Mensagem | O que quase sempre é |
|---|---|
| IndexError | Acessou posição que não existe — índices vão de 0 a len(lista) − 1 |
| Laço infinito | Esqueceu o i += 1 dentro do while |
| ZeroDivisionError | Média de lista vazia — cheque if len(lista) > 0 |
| Resultado errado | Iniciou maior = 0 em vez de maior = lista[0] |
| Só o 2º item | Confundiu índice com nº do elemento — lista[1] é o segundo |
print() dentro do laço para ver cada variável a cada volta. É o jeito mais rápido de achar onde a lógica desviou.
0 a N−1lista = [...], len(lista), lista[i] = valorfor ou while, sempre com atenção à condição de paradaMatrizes bidimensionais — o mesmo raciocínio, agora em duas dimensões: linhas × colunas, indexação [i][j] e laços aninhados.
lista = [10, 20, 30] — cria o vetorlista[0] é o primeiro; lista[len(lista)-1] é o últimolen(lista) — quantos elementos temfor i in range(len(lista)): — percorre por índicelista.append(x) — adiciona ao fim · lista[i] = x — alteraSEDUC-SP. Educação Profissional Paulista — Técnico em Desenvolvimento de Sistemas. Lógica de Programação, Componente 1 — Vetores (arrays) unidimensionais. Códigos SISANO1C1B3S15A1 a A4.
PYTHON SOFTWARE FOUNDATION. O tutorial do Python — 5. Estruturas de dados. Disponível em: docs.python.org. Acesso em: 6 abr. 2026.
ORESTES, Y. Listas em Python: operações básicas. Alura, 5 fev. 2026. Disponível em: alura.com.br. Acesso em: 6 abr. 2026.
Aula compilada · adaptação para apresentação HTML por Guilherme Antunes