01 / 16
Lógica de Programação · Aula compilada · Dia 1 de 2

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.

ProfessorGuilherme Antunes CursoTécnico em Desenvolvimento de Sistemas Duração50 minutos
02 / 16
Objetivos da aula

Ao final, você será capaz de.

01

Entender o que é um vetor e a indexação base 0

02

Declarar, acessar e alterar vetores em Python, usando len()

03

Fazer o percurso sequencial com for e while

04

Aplicar busca linear e estatísticas (soma, média, maior, menor)

03 / 16
Conceito

O que é um vetor

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.

7.5[0]
8.0[1]
6.5[2]
9.0[3]
7.0[4]
Uma variável, muitos valores: 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.
04 / 16
A regra que todo mundo erra

Indexação base 0

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.

[0]
[1]
[2]
[3]
[4]
[5] erro
Vão errar isso umas vinte vezes — e tudo bem. Anotem: nº do elemento = índice + 1 e último índice = len(vetor) − 1. Um vetor de 5 itens tem índices 0, 1, 2, 3, 4.
05 / 16
Sintaxe em Python

Declarar, acessar e alterar

# 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çãoCódigoResultado
Acessaridades[1]15
Alteraridades[0] = 18troca o 1º
Tamanholen(idades)3
Último itemidades[len(idades) - 1]o do fim
06 / 16
Percurso sequencial

Visitar tudo: for e while

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
Mesmo padrão nos dois: começam em 0 e param antes de len(notas). range(len(notas)) gera 0, 1, 2, 3 — nunca o 4.
07 / 16
O erro mais comum

Índice inicial e condição de parada

Certo — para antes do fim

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.

Errado — estoura ou trava

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.
Dois cuidados, sempre: (1) o índice começa em 0; (2) a condição é <, não <=.
08 / 16
Busca linear

Procurar um valor

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.

7.5[0] ✕
8.0[1] ✕
6.5[2] ✕
9.0[3] ✓
7.0[4]
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")
09 / 16
Estatísticas simples

Soma, média, maior e menor

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)
Maior e menor começam no primeiro elemento, nunca no zero — se todos os valores fossem negativos, iniciar em 0 daria resultado errado. Em Python há também sum(), max() e min() prontos.
10 / 16
Pause e responda

Por que i < len(lista)?

Por que a condição i < len(lista) é a mais usada ao percorrer listas?

APara acelerar o programa
BPara evitar acessar posições inválidas
CPara ordenar a lista
DPara aumentar o tamanho da lista
Por que B: com N elementos, os índices válidos vão de 0 a N−1. A condição encerra o laço exatamente antes de N, impedindo o IndexError.
11 / 16
Desafio · em duplas

Desafio: temperaturas da semana

Um vetor com as 7 temperaturas da semana. Um único percurso responde tudo: média, dia mais quente e se algum dia bateu 25°.

1

Criem o vetor temps com as 7 temperaturas (podem inventar).

2

Calculem a média com um acumulador e len(temps).

3

Achem o dia mais quente: comecem com maior = temps[0].

4

Façam uma busca pelo valor 25 e digam em que dia apareceu — ou que não houve.

5

Testem os limites: todos os valores iguais e o 25 ausente.

Esbocem no papel primeiro: qual o acumulador, o que muda a cada volta, quando parar. O código completo está no próximo slide.
12 / 16
Desafio · Como fica o código

Temperaturas funcionando

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°")
Três respostas, um laço: soma (média), maior (dia mais quente) e dia_25 (busca) atualizados na mesma volta. O -1 marca "ainda não achei".
13 / 16
Antes de errar na prova

Os erros que travam o vetor

MensagemO que quase sempre é
IndexErrorAcessou posição que não existe — índices vão de 0 a len(lista) − 1
Laço infinitoEsqueceu o i += 1 dentro do while
ZeroDivisionErrorMédia de lista vazia — cheque if len(lista) > 0
Resultado erradoIniciou maior = 0 em vez de maior = lista[0]
Só o 2º itemConfundiu índice com nº do elemento — lista[1] é o segundo
Deu resultado errado sem mensagem? Ponha 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.
14 / 16
Então ficamos assim…

O que vimos hoje

  • Vetor → uma variável que guarda vários valores em sequência
  • Indexação base 0 → N elementos têm índices de 0 a N−1
  • Declarar / len / alterarlista = [...], len(lista), lista[i] = valor
  • Percursofor ou while, sempre com atenção à condição de parada
  • Busca e estatísticas → mesmo laço, com acumulador dentro
Próxima aula · Dia 2

Matrizes bidimensionais — o mesmo raciocínio, agora em duas dimensões: linhas × colunas, indexação [i][j] e laços aninhados.

15 / 16
Cola de bolso

Vetor em seis linhas

  • lista = [10, 20, 30] — cria o vetor
  • lista[0] é o primeiro; lista[len(lista)-1] é o último
  • len(lista) — quantos elementos tem
  • for i in range(len(lista)): — percorre por índice
  • lista.append(x) — adiciona ao fim  ·  lista[i] = x — altera
  • Cálculo = acumulador antes do laço, atualiza dentro, usa depois
Reabra este deck no celular na véspera da prova — funciona offline depois de carregado.
16 / 16
Referências

De onde veio cada coisa

SEDUC-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