Revisão de Código Python: Loops, Funções e Estruturas de Dados
Classificado em Computação
Escrito em em
português com um tamanho de 5,64 KB
Exemplos de Loops (For e While)
Exemplo 1: Usando for e while
Reescreva usando for:
x=5
while x <= 25:
print(x)
x=x+2Equivalente com for:
for x in range(5, 26, 2):
print(x)Exemplo 2: Usando WHILE com um loop for aninhado (Correção de lógica)
O código original parecia misturar lógicas de iteração e atribuição de forma confusa. Abaixo, apresentamos as estruturas corrigidas:
Estrutura com for (assumindo a intenção de somar ou reatribuir):
# Usando for com range(2, 10, 3) -> 2, 5, 8
cont = 0
for x in range(2, 10, 3):
cont = cont + x # Soma os valores: 0+2=2, 2+5=7, 7+8=15
cont = x # Sobrescreve cont com o valor atual de x
print(cont) # Imprime 2, 5, 8 (pois cont é sobrescrito)
Estrutura com while (assumindo a intenção de somar):
x = 2
cont = 0
while x < 10:
cont = cont + x
print(cont)
x = x + 3
# Iterações: x=2, cont=2; x=5, cont=7; x=8, cont=15
Funções com Listas
Função para Filtrar Elementos Maiores que um Número
Função que recebe uma lista e um número como parâmetro e gera uma nova lista apenas com os elementos maiores que o número. Fazer um programa que teste a função.
def maior(L, N):
L2 = []
for i in L: # Corrigido: 'i in lista' para 'i in L'
if i > N:
L2.append(i)
return L2
a = [2, 3, 9, 6]
x = maior(a, 5)
# Resultado esperado para x: [9, 6]
Tabela de rastreamento (Exemplo com a=[2,3,9,6] e N=5):
| Global | maior | |||
|---|---|---|---|---|
| x | L | N | L2 | i |
| [0]9 | [0] 2 | 5 | [0]9 | 2 |
| [1] 6 | [1] 3 | [1] 6 | 3 | |
| [2] 9 | 9 | |||
| [3] 6 | 6 |
Contagem de Ocorrências em String
Ocorrência de Caractere em String:
def ocorrencia(c, s):
qtd = 0
for i in s:
if i == c:
qtd += 1
return qtd
Verificação de Existência de Elemento em Lista
Existe x na lista:
def existe(lista, x):
y = 0
while y < len(lista):
if lista[y] == x:
return True # Corrigido: 'true' para 'True'
y = y + 1
return False # Corrigido: 'false' para 'False'
a = [10, 3, 5]
x = existe(a, 10)
# x será True
Cálculo da Média de Números Maiores que 33
Função que recebe uma lista de reais como parâmetro e retorna a média dos números maiores que 33 existentes na lista.
def med33(L):
s = 0
c = 0
x = 0
while x < len(L):
if L[x] > 33: # Corrigido: 'if in L [x]' para 'if L[x]'
s = s + L[x]
c = c + 1
x = x + 1
if c > 0:
return s / c
else:
return 0 # Evita divisão por zero
Soma e Contagem de Números Ímpares
Somente número ímpar (assumindo que 'lista' está definida no escopo):
# Exemplo: lista = [1, 2, 3, 4, 5]
s = 0
c = 0
for i in lista:
if i % 2 == 1:
s = s + i
c = c + 1
print(s) # Imprime a soma dos ímpares
Operações Básicas com Sequências (Strings/Listas)
len(s): tamanho da sequências[1:3]: pegar elementos da posição desejada (índices 1 e 2)s.count('a'): quantidade do parâmetro desejados.index(a): posição em que o parâmetro aparece pela primeira vez- Membership: verifica se o elemento pertence ou não na lista (
i in list) - Concatenação:
x = lis + [1, 2, 3] - Comparação:
(1, 2) == (2, 1)->False min(lis): menor número da listamax(lis): maior número da listasum(lis): soma da lista
Funções Relacionadas a Números Primos
1) Quantidade de Divisores
Função que recebe um número natural como parâmetro (n), e devolva a quantidade de divisores de n.
def qtd_div(n):
qtd = 0
for div in range(1, n + 1):
if n % div == 0:
qtd += 1
return qtd
2) Verificação de Número Primo
Função que recebe um número natural como parâmetro (n), e devolva um valor booleano indicando se n é primo.
def primo(n):
if qtd_div(n) == 2:
return True
else:
return False
3) Exibir Primos em um Intervalo
Função que recebe como parâmetro dois números naturais i e f (i<=f), exiba todos os primos do intervalo [i,f].
def inter_primo(i, f):
for num in range(i, f + 1):
if primo(num):
print(num)
4) Soma dos Primos em um Intervalo
Função que recebe como parâmetro dois números naturais i e f (i<=f), e devolva a soma dos primos do intervalo[i,f].
def soma_primos(i, f):
s = 0
for num in range(i, f + 1):
if primo(num):
s += num
return s