1
resposta

Hora da prática

Aula 4 - Estruturas de repetição

Questão 1


inicio = int(input('Insira o primeiro número inteiro: '))
fim = int(input('Insira o segundo número inteiro: '))

if inicio < fim:
  for i in range(inicio + 1, fim):
    print(i)
elif inicio > fim:
  for i in range(fim + 1, inicio):
    print(i)
else:
  print('Os números são iguais.')

Insira o primeiro número inteiro: 8
Insira o segundo número inteiro: 20
9
10
11
12
13
14
15
16
17
18
19

Questão 2

colonia_a = 4
colonia_b = 10

taxa_a = 0.03
taxa_b = 0.015

dias = 0

while colonia_a <= colonia_b:
  colonia_a *= taxa_a
  colonia_b *= taxa_b

dias += 1

print(f'Irá levar {dias} dias para a colônia A ultrapassar a colônia B.')

Irá levar 1 dias para a colônia A ultrapassar a colônia B.

Questão 3

for i in range(15):
  nota = float(input(f'Isira a nota da pessoa usuária {i}: '))

  while (nota < 0) or (nota> 5):
    nota = float(input(f'Nota inválida, insira novamente a nota da pessoa usuária {i}: '))
print('Verificação feita. Todas as notas são válidas.')

Isira a nota da pessoa usuária 0: 4
Isira a nota da pessoa usuária 1: 8
Nota inválida, insira novamente a nota da pessoa usuária 1: 3
Isira a nota da pessoa usuária 2: 5
Isira a nota da pessoa usuária 3: 2
Isira a nota da pessoa usuária 4: 6
Nota inválida, insira novamente a nota da pessoa usuária 4: 4.5
Isira a nota da pessoa usuária 5: 3.8
Isira a nota da pessoa usuária 6: 4.0
Isira a nota da pessoa usuária 7: 5.1
Nota inválida, insira novamente a nota da pessoa usuária 7: 4.9
Isira a nota da pessoa usuária 8: 3.5
Isira a nota da pessoa usuária 9: 4.5
Isira a nota da pessoa usuária 10: 2.8
Isira a nota da pessoa usuária 11: 1.5
Isira a nota da pessoa usuária 12: 1.0
Isira a nota da pessoa usuária 13: 4.6
Isira a nota da pessoa usuária 14: 3.2

Verificação feita. Todas as notas são válidas.

Questão 4

temperatura = float(input('Insira a temperatura em Celsius: '))

contadora = 0 
soma = 0

while temperatura != -273:

  soma += temperatura
  contadora += 1
  temperatura = float(input('Insira a temperatura em Celsius: '))

media = soma / contadora

print(f'A média das temperaturas é: {media}')

Insira a temperatura em Celsius: 56
Insira a temperatura em Celsius: -12
Insira a temperatura em Celsius: 85
Insira a temperatura em Celsius: -273
A média das temperaturas é: 43.0

Questão 5

num = int(input('Informe um número inteiro: '))

fatorial = 1

i = num
while i > 0:
  fatorial *= i
  i -= 1

print(f'Fatorial de {num} é {fatorial}')

Informe um número inteiro: 8
Fatorial de 8 é 40320

1 resposta

Olá, Jonatan. Como vai?

Parabéns por praticar os exercícios propostos no curso. Colocar a mão na massa é a melhor forma de fixar os conceitos de estruturas de repetição em Python.

Analisando o seu código, notei que as questões 1, 3, 4 e 5 estão corretas e funcionando muito bem. No entanto, a Questão 2 possui um pequeno detalhe na lógica matemática e na indentação que está gerando um resultado incorreto. Vamos analisar juntos para entender o que aconteceu.

Ajustando a Questão 2

O objetivo do exercício é calcular o crescimento de duas populações (colônias) ao longo dos dias. No seu código atual, acontecem duas coisinhas que precisam de atenção:

  • Crescimento populacional: Quando multiplicamos a população diretamente pela taxa (colonia_a *= taxa_a), estamos na verdade reduzindo drasticamente o tamanho da colônia (ex: 4 vezes 0.03 vira 0.12). Para calcular o crescimento, precisamos somar a população atual com o crescimento do dia, ou seja, multiplicar por (1 + taxa).
  • Contador de dias: A linha dias += 1 ficou fora do bloco while. Como ela não está indentada, o Python só soma 1 dia uma única vez, logo após o loop terminar. Ela precisa ficar dentro do loop para contar cada dia que passa.

Veja como o código fica corrigido com essas boas práticas:

colonia_a = 4
colonia_b = 10

taxa_a = 0.03
taxa_b = 0.015

dias = 0

# O loop continua enquanto a colônia A for menor ou igual à B
while colonia_a <= colonia_b:
    # Atualiza a população somando o crescimento do dia
    colonia_a *= (1 + taxa_a)
    colonia_b *= (1 + taxa_b)
    
    # Incrementa o dia DENTRO do while
    dias += 1

print(f'Irá levar {dias} dias para a colônia A ultrapassar a colônia B.')

Dica extra sobre formatação na Questão 1

Na Questão 1, seu código funcionou perfeitamente. Caso você queira deixar a saída mais limpa visualmente no terminal, uma boa prática em Python é usar o parâmetro end na função print().

Se você usar print(i, end=' '), os números serão exibidos lado a lado na mesma linha, separados por um espaço, em vez de pular uma linha para cada número. É um truque legal para quando temos muitos dados na tela.

Continue com essa dedicação nos estudos de Data Science.

Espero que possa ter lhe ajudado!