Bom dia, pessoal! Espero que todos tenham conseguido fazer e entregar o EP0 ontem. Em breve receberemos comentários do monitor.
Dando sequência à reflexão que eu propus, segue uma possibilidade de solução do EP0. Essa foi a implementação usada para gerar as saídas que estão no enunciado, e foi acrescida de algumas linhas para permitir ao computador adivinhar números entre 0 e 127 (estão comentadas, basta descomentar).
print("Pense em um número n entre 0 e 10.")
# pede ao usuário o bit menos significativo de n
b0=int(input("O número é par (digite 0) ou ímpar (digite 1)? "))
# pede para o usuário fornecer os próximos bits da representação binária de n
if b0==1:
print("Subtraia 1 do número.")
print("Divida o resultado por 2.")
b1=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
if b1==1:
print("Subtraia 1 do número.")
print("Divida o resultado por 2.")
b2=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
if b2==1:
print("Subtraia 1 do número.")
print("Divida o resultado por 2.")
b3=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
n = b3*2**3+b2*2**2+b1*2+b0
# para fazer o programa funcionar para n=0,1,...,127, descomente abaixo:
# if b3==1:
# print("Subtraia 1 do número.")
# print("Divida o resultado por 2.")
# b4=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
# if b4==1:
# print("Subtraia 1 do número.")
# print("Divida o resultado por 2.")
# b5=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
# if b5==1:
# print("Subtraia 1 do número.")
# print("Divida o resultado por 2.")
# b6=int(input("O número resultante é par (digite 0) ou ímpar (digite 1)? "))
# n = b6*2**6+b5*2**5+b4*2**4+b3*2**3+b2*2**2+b1*2+b0
print("O número que você pensou é",n,"?")
x=int(input("Digite 1 para sim, 0 para não: "))
if x==0:
print("Até parece! Você que errou nas contas... kkkk")
else:
print("Já consigo ler mentes... agora só me falta dominar o mundo! huahuahua")
Uma sugestão de exercício interessante é tentar reescrever esse mecanismo usando while. Por um lado, a repetição de linhas quase exatamente iguais sugere que esse mecanismo possa ser refatorado. Por outro lado, essa refatoração exigirá a solução de um outro desafio: ir construindo a resposta iterativamente, sem armazenar todas as respostas em variáveis diferentes (quem pensou que o desafio envolve usar vetores ainda não entendeu bem o espírito da brincadeira: é pra usar só o que vimos em aula
).
Boa programação!
Marcelo