Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

for in range com ou sem +1

Não sei se é coisa da versão do Python 3.10 que uso, mas reparei que tanto faz eu colocar o +1 ao final da variável totalTentativas. O número de tentativas vai ser sempre 3 vezes.

numerosecreto = 43
totalTentativas = 3


for rodada in range(1, totalTentativas):
    print("Tentativa {} de {}" .format(rodada, totalTentativas))

    chute_str = input("Digite o seu chute:")

    print("Você digitou", chute_str)

    chute = int(chute_str)

    acertou = numerosecreto == chute

    maior = chute > numerosecreto

    menor = chute < numerosecreto

    if (acertou):
        print("Você acertou!")
    else:
        if(maior):
            print("Seu chute foi maior do que o número secreto!")
        elif(menor):
            print("Seu chute foi menor do que o número secreto")



print("Infelizmente acabaram as tentativas!.")
6 respostas

boa noite :) pode explicar um pouco mais sua duvida? abaixo seu for rodando com range inicio 1: Insira aqui a descrição dessa imagem para ajudar na acessibilidadeem seguida rodando com inicio range 0: Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Bom dia!

Você também pode passar somente o número de tentativas que o range() faz automaticamente de 0 até o o número escolhido:

numerosecreto = 43
totalTentativas = 3


for rodada in range(totalTentativas):
    print("Tentativa {} de {}" .format(rodada, totalTentativas))

    chute = int(input("Digite o seu chute: "))

    print(f'Você digitou {chute}\n')

    maior = chute > numerosecreto

    menor = chute < numerosecreto

    if (numerosecreto == chute):
        print("\nVocê acertou!")
    else:
        if(maior):
            print("Seu chute foi maior do que o número secreto!\n")
        elif(menor):
            print("Seu chute foi menor do que o número secreto!\n")



print("Infelizmente acabaram as tentativas!")

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado :)

Então, acredito ter me equivocado. Rodei o código novamente tive que adicionar o +1 em:

for rodada in range(1, totalTentativas + 1):

[...] para dar certo.

A solução:

for rodada in range(0, totalTentativas):

... não fica muito elegante, pois vai permitir um range de 3 tentativas, mas aí imprime:

Tentativa 0 de 3 Tentativa 1 de 3 Tentativa 2 de 3

Fim

Ao invés de terminar com "3 de 3".

Entendi! Você pode arrumar a exibição no próprio print() colocando +1 na formatação da rodada, assim deixa o for mais limpo:

numerosecreto = 43
totalTentativas = 3


for rodada in range(totalTentativas):
    print("Tentativa {} de {}" .format(rodada + 1, totalTentativas))     # Printa a rodada atual +1 para formatação correta do print

    chute = int(input("Digite o seu chute: "))

    print(f'Você digitou {chute}\n')

    maior = chute > numerosecreto

    menor = chute < numerosecreto

    if (numerosecreto == chute):
        print("\nVocê acertou!")
    else:
        if(maior):
            print("Seu chute foi maior do que o número secreto!\n")
        elif(menor):
            print("Seu chute foi menor do que o número secreto!\n")



print("Infelizmente acabaram as tentativas!")

O resultado final fica assim:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não tinha me atentado a isso na hora que mandei a resposta, peço desculpas hahah

Se ainda assim você achar que a formatação fica poluída, você pode optar por formatar usando esse outro tipo de concatenação. Eu inclusive prefiro essa por ficar mais estético:

print(f'Tentativa {rodada + 1} de {totalTentativas}')

Tranquilo. Legal, obrigado!

solução!

Imagina! Qualquer coisa estamos aí hahah

Se tiver conseguido resolver você poderia marcar o tópico como solucionado, por favor? Aí me ajuda e também deixa o fórum organizado kkk

Bons estudos! :)