Problema no meu código em python
Boa tarde galera, sou novo na programação e estou com um problema no meu código em python e esta igualzinho ao do professor do meu curso, será que alguem poderia me ajudar ?
Boa tarde galera, sou novo na programação e estou com um problema no meu código em python e esta igualzinho ao do professor do meu curso, será que alguem poderia me ajudar ?
Olá Caio, tudo bem?
Você possui alguns erros de sintaxes simples no seu código, cujo podem ser facilmente corrigidos.
Primeiramente, peguemos a linha 10:
print("Tentativa {} de {}", format(rodada, total_de_tentativas))
A função format
é na verdade um método aplicável para uma string. O que isso significa?
Basicamente o método tem que ser executado em cima de uma string, ou seja, após o fechamento das aspas, você deveria colocar .format
ao invés de , format
. Além disso, os argumentos rodada
e total_de_tentativas
são inteiros e a função só aceita argumentos do tipo string, logo você deverá realizar a conversão dos mesmos. Ficando assim:
print("Tentativa {} de {}".format(str(rodada), str(total_de_tentativas)))
Além disso, após a linha 20 print("Você acertou")
seria interessante colocar o comando break
cujo parará a execução do loop vide que o usuário informou o número corretamente. Ficaria assim:
if acertou:
print("Você acertou")
break
Uma ótima quinta-feira para todos.
deu certo aqui cara, muito obrigado pela sua ajuda !
Boa tarde.
O problema eh q a funcao "format()" soh aceita tipo string para os 2 argumentos.
Tenta converter os argumentos para string dessa forma:
print("Tentativa {} de {}", format(str(rodada), str(total_de_tentativas)))
Assim vc forca que os argumentos q entrarem no format serao do tipo string.
Isso vai fazer o teu codigo rodar.
Ou vc pode substituir a sua linha 10 por isso aqui:
print(f"Tentativa {rodada} de {total_de_tentativas}")
Alem de ser mais clean, eh mais simples de usar essa forma de formatacao.
Além da solução do @aschull, venho humildimente compartilhar minha opnião.
Seria melhor não criar variáveis para armazenar condições, visto que o 'if' em si é para esta função. Faça a condição dentro do próprio if, já que não será utilizado as variaveis (acertou, maior e menor) em nenhuma outra parte do código. Digo isso por padronização e lhe auxiliar no costume de leitura de códigos.
acertou = chute == numero_secreto
maior = chute > numero_secreto
menor = chute < numero_secreto
if acertou:
print("Você acertou")
else:
if maior:
print("Você errou! chute maior que o número secreto.")
elif menor:
print("Você errou! chute menor que o número secreto.")
if (chute == numero_secreto):
print("Você acertou")
elif (chute > numero_secreto):
print("Você errou! chute maior que o número secreto.")
elif (chute < numero_secreto):
print("Você errou! chute menor que o número secreto.")