Hora de juntar if, for, while em desafios maiores.
Desafio 1: Simulador de notas #
Receba nome e nota de 5 alunos. ≥80 → “Pass”, 60–79 → “Border”, abaixo disso → “Fail”. Exiba uma tabela:
Name Score Result
Alice 85 Pass
Bob 74 Border
...
records = []
for _ in range(5):
name = input("Nome: ")
score = int(input("Nota: "))
if score >= 80:
result = "Pass"
elif score >= 60:
result = "Border"
else:
result = "Fail"
records.append((name, score, result))
print(“Name\tScore\tResult”)
for name, score, result in records:
print(f"{name}\t{score}\t{result}")
Desafio 2: Compressão simples de string #
Conte repetições consecutivas e mostre no formato aabcccccaaa -> a2b1c5a3.
text = input("String: ")
if not text:
print("String vazia")
else:
result = []
current = text[0]
count = 1
for ch in text[1:]:
if ch == current:
count += 1
else:
result.append(f"{current}{count}")
current = ch
count = 1
result.append(f"{current}{count}")
print("".join(result))Desafio 3: Aproximando π com Monte Carlo #
Gere pontos aleatórios em 0–1 e conte quantos caem dentro do quarto de círculo. Estimativa: 4 * pontos_no_círculo / total.
import random
n = int(input("Número de tentativas: "))
inside = 0
for _ in range(n):
x = random.random()
y = random.random()
if x * x + y * y <= 1.0:
inside += 1
pi_estimate = 4 * inside / n
print("Estimativa:", pi_estimate)