1
resposta

Desafio - Solucionando a Matéria

1

n1 = int(input("Digite o primeiro número: "))
n2 = int(input("Digite o segundo número: "))

for i in range(n1 + 1, n2):
print(i)

2

a = 4
b = 10
dias = 0

while a < b:
a = a * 1.03
b = b * 1.015
dias += 1

print("Dias necessários:", dias)

3

for i in range(15):
nota = float(input(f"Digite a nota {i+1}: "))

while nota < 0 or nota > 5:
    print("Nota inválida!")
    nota = float(input("Digite novamente: "))

print("Notas válidas registradas")

4

soma = 0
quantidade = 0

while True:
temp = float(input("Digite a temperatura: "))

if temp == -273:
    break

soma += temp
quantidade += 1

media = soma / quantidade
print("Média das temperaturas:", media)

5

numero = int(input("Digite um número: "))
fatorial = 1

for i in range(1, numero + 1):
fatorial *= i

print("Fatorial:", fatorial)

6

numero = int(input("Digite um número para a tabuada: "))

print(f"Tabuada do {numero}")

for i in range(1, 11):
print(f"{numero} x {i} = {numero * i}")

7

numero = int(input("Digite um número: "))
primo = True

if numero <= 1:
primo = False
else:
for i in range(2, numero):
if numero % i == 0:
primo = False
break

if primo:
print("Número primo")
else:
print("Não é primo")

8

faixa1 = faixa2 = faixa3 = faixa4 = 0

while True:
idade = int(input("Digite a idade: "))

if idade < 0:
    break

if idade <= 25:
    faixa1 += 1
elif idade <= 50:
    faixa2 += 1
elif idade <= 75:
    faixa3 += 1
else:
    faixa4 += 1

print("0-25:", faixa1)
print("26-50:", faixa2)
print("51-75:", faixa3)
print("76-100:", faixa4)

9

c1 = c2 = c3 = c4 = nulos = brancos = 0

for i in range(20):
voto = int(input("Digite seu voto: "))

if voto == 1:
    c1 += 1
elif voto == 2:
    c2 += 1
elif voto == 3:
    c3 += 1
elif voto == 4:
    c4 += 1
elif voto == 5:
    nulos += 1
elif voto == 6:
    brancos += 1

total = c1 + c2 + c3 + c4 + nulos + brancos

print("Candidato 1:", c1)
print("Candidato 2:", c2)
print("Candidato 3:", c3)
print("Candidato 4:", c4)
print("Nulos:", nulos)
print("Brancos:", brancos)

print("Porcentagem de nulos:", (nulos / total) * 100, "%")
print("Porcentagem de brancos:", (brancos / total) * 100, "%")

1 resposta

Olá, Micael! Como vai?

Parabéns por concluir esse desafio! Dominar as estruturas de repetição é o que realmente dá "superpoderes" ao programador, permitindo que o computador faça o trabalho pesado e repetitivo por nós.

Sua resolução demonstra um ótimo entendimento sobre quando usar cada estrutura:

Pontos de Destaque Técnico

  • Validação de Dados (Ex 3): O uso do while para forçar o usuário a digitar uma nota válida é uma prática essencial em sistemas reais. É o que chamamos de "higienização de dados".
  • Sentinela ou Flag (Ex 4 e 8): Você utilizou corretamente valores específicos (como -273 ou idades negativas) para encerrar o laço while True. Essa é a forma mais eficiente de lidar com entradas de dados de tamanho desconhecido.
  • Lógica de Acumuladores (Ex 2 e 5): Tanto no cálculo de crescimento populacional quanto no fatorial, você soube manipular as variáveis acumuladoras (a, b, fatorial) dentro dos ciclos.

Dicas para Refinar seu Código

Como você já está avançando bem, aqui estão dois toques para deixar seu código ainda mais profissional:

  1. Cuidado com o Zero (Ex 4): Se o usuário digitar o valor de saída (-273) logo na primeira tentativa, a variável quantidade será 0, e o Python retornará um erro de divisão por zero (ZeroDivisionError) ao calcular a média. Adicionar um if quantidade > 0: antes do cálculo resolve isso.
  2. Eficiência em Primos (Ex 7): Sua lógica está correta! Uma dica para performance em números muito grandes é testar apenas até a raiz quadrada do número ou usar o range(2, int(numero0.5) + 1). Além disso, o Python tem um recurso único chamado for...else, que combina muito bem com verificações de números primos.

Sugestão de "Próximo Nível"

No exercício 9 (votação), imagine que você tivesse 50 candidatos. Escrever elif para todos seria exaustivo. Nesses casos, costumamos usar Dicionários ou Listas para contar os votos de forma dinâmica.

Excelente progresso, Micael! Você está construindo uma fundação lógica muito forte para seguir na trilha de Data Science.

Espero que possa ter lhe ajudado! Qual dessas estruturas você achou mais divertida de implementar: o for por sua precisão ou o while por sua flexibilidade?