Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Resolução: Desafio: hora da prática - Estruturas de Repetição

1-

num_1 = int(input("Digite o número inicial: "))
num_2 = int(input("Digite o número final: "))
for contador in range(num_1, num_2):
  print(contador)

2-

colonia_a = 4
colonia_b = 10
taxa_a = 0.03
taxa_b = 0.015
dias = 0

while colonia_a <= colonia_b:
  colonia_a *= 1 + taxa_a
  colonia_b *= 1 + taxa_b
  dias += 1

print(f"Levará {dias} para a colônia A ultrapassar a colônia B")

3-

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

  while (nota < 0) or (nota > 5):
    nota = float(input("Nota inválida. A nota deve ser de 0 a 5."))
    3
print("Verificação concluídas. Todas notas válidas.")

4-

temperatura = float(input("Digite a temperatura em Celsius: "))

contador = 0
soma = 0

while temperatura != -273:
  soma += temperatura
  contador += 1
  temperatura = float(input("Digite a temperatura em Celsius: "))

media = soma / contador
print(f"A média é: {int(media)}")

5-

numero = int(input("Digite o número: "))
fatorial = 1
for fator in range(numero, 1, -1):
 fatorial *= fator

print(f"O fatorial de {numero} é: {fatorial}")

6-

numero_digitado = int(input("Digite o número para visualizar sua tabuada de 1 a 10: "))
for i in range(1, 11, 1):
  resultado = numero_digitado * ++i
  print(f"{numero_digitado} x {i}: = {resultado}")

7-

numero_digitado = int(input("Digite o número: "))
e_primo = True
if numero_digitado <= 1:
  e_primo= False

for i in range(2, numero_digitado):
  if numero_digitado % i == 0:
    e_primo = False

if e_primo:
  print("O número é primo.")
else:
  print("O número não é primo.")

8-

contador_1 = 0
contador_2 = 0
contador_3 = 0
contador_4 = 0

numero_digitado = int(input("Digite a idade do funcionário: "))

while numero_digitado >= 0:
  if numero_digitado <= 25: 
    contador_1 += 1
  elif 25 < numero_digitado < 51:
    contador_2 += 1
  elif 50 < numero_digitado < 76:
    contador_3 += 1
  elif 75 < numero_digitado < 101:
    contador_4 += 1
  elif numero_digitado > 100:
    print("Idade inválida. Digite uma idade entre 0 e 100.")
  numero_digitado = int(input("Digite a idade do funcionário: "))

if numero_digitado < 0:
  print(f"0 a 25 anos: {contador_1}")
  print(f"26 a 50 anos: {contador_2}")
  print(f"51 a 75 anos: {contador_3}")
  print(f"76 a 100 anos: {contador_4}")

9-

candidato_01 = int(input("Digite a quantidade de votos do candidato 1: "))
candidato_02 = int(input("Digite a quantidade de votos do candidato 2: "))
candidato_03 = int(input("Digite a quantidade de votos do candidato 3: "))
candidato_04 = int(input("Digite a quantidade de votos do candidato 4: "))
nulos = int(input("Digite a quantidade de votos nulos (5): "))
brancos = int(input("Digite a quantidade de votos brancos (6): "))

total_votos = candidato_01 + candidato_02 + candidato_03 + candidato_04 + nulos + brancos
porcentagem_nulos = (nulos / total_votos) * 100
porcentagem_brancos = (brancos / total_votos) * 100

print(f"Total de votos: {total_votos}\n Votos candidato 1: {candidato_01}\n Votos candidato 2: {candidato_02}\n Votos candidato 3: {candidato_03}\n Votos candidato 04: {candidato_04}\n Votos nulos: {nulos}\n Votos brancos: {brancos}")
print(f"Porcentagem votos nulos: {porcentagem_nulos:.2f}%\n Porcentagem votos brancos: {porcentagem_brancos:.2f}%") 
1 resposta

Oi, Luiz. Tudo bem com você?

Analisando os exercícios sobre estruturas de repetição, a maioria das soluções está funcionando corretamente, com bom uso de while e for conforme pedido, mas encontrei algumas inconsistências pontuais que vale ajustar. No exercício 1, o range vai de num_1 até num_2 exclusivo, então se o aluno digitar 1 e 10, o programa imprime até o 9, deixando de fora o número final, o que não bate exatamente com "todos os números entre eles" caso a intenção seja incluir os dois extremos, vale usar range(num_1, num_2 + 1).

No exercício 3, tem um "3" solto dentro do laço while, uma linha que ficou sobrando e não tem função no código, provavelmente resquício de teste que passou despercebido na hora de organizar a solução. Já no exercício 6, a expressão numero_digitado * ++i não funciona como multiplicação pelo valor de i em cada volta, porque Python não tem operador de incremento ++, então ++i é interpretado como um duplo operador unário positivo, resultando apenas no próprio valor de i, o correto seria numero_digitado * i direto. No exercício 8, a lógica do while verifica numero_digitado >= 0 pra continuar o laço, só que depois de sair do laço com valor negativo, o bloco final só executa porque a condição numero_digitado < 0 é reavaliada, isso funciona, mas fica um pouco redundante, já que ao sair do while o valor já é garantidamente negativo.

Parabéns pelo empenho nos exercícios, Luiz, dá pra ver que você já domina bem a lógica de repetição com while e for. O fórum está à disposição, continue compartilhando suas resoluções por aqui.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!