Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

capoia

[DUVIDA]ELIF

Recommended Posts

Boa noite, sou estudando e agora estou aprendendo phyton na faculdade, o professor deu o seguinte enunciado :


1. Elabore um código (função) que peça o nome do usuário e o armazene em uma variável.
2. Obtenha o tamanho do nome inserido e armazene-o em outra variável.
3. Utilize a biblioteca RANDOM para gerar um número aleatório.
4. Faça um laço de repetição onde a quantidades de chances que o usuário terá de acertar o número será igual a quantidade de letras do nome inserido.
5. Se o usuário acertar o número, retorne algum indicativo de acerto. Se não, retorne algum indicativo de que ele errou.
6. Na função principal, faça um laço de repetição para verificar se o usuário acertou a última rodada ou não. Dependendo do retorno, elabore um placar, onde será contabilizado a cada rodada, quantas vitórias e quantas derrotas o usuário teve.
7. Verifique se o usuário deseja continuar jogando para permanecer dentro do laço. Caso contrário, termine o programa.
então eu fiz o seguinte código:
import random
def nome():
nome = input ('Informe seu nome: ')
print('O tamanho do seu nome é: ' + str(len(nome)))
qtdnome = str(len(nome))
return int(qtdnome)
def tente(qtdnome):
naleatorio = random.randint(1,15)
while qtdnome > 0:
print ('Digite um numero maior que 0: ' + int(input(palpite)))
qtdnome = qtdnome -1
if int(palpite) == naleatorio:
print ('Parabens! Voce ganhou , o numero aleatorio era: ' + naleatorio)
return 1
elif palpite <= 0:
print ('Voce digitou um numero invalido')
qtdnome = qtdnome++
else:
print ('Voce errou, tente novamente!')
if qtdnome == 0:
print ('Voce perdeu!')
return 0
## Começo do algoritmo! ##
qtdnome = nome()
print ('Suas chances sao: '+ qtdnome)
print ('Deseja jogar? Digite 1 para jogar: ')
jogarnovamente = input
while jogarnovamente == 1:
resultado = tente()
if resultado == 1:
print ('Voce acertou da ultima vez!')
acertos = acertos++
else:
print ('Voce errou da ultima vez!')
erros = erros++
print ('Total de vezes que voce acertou: ' + acertos)
print ('Total de vezes que voce errou: ' + erros)
Porem na hora de compilar ele fala que tem erro ali na linha do ELIF , mais precisamente deixa selecionado em vermelho o elif ! Sou iniciante ainda e ele não especifica o erro, fica difícil de eu achar, alguém poderia me explicar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Olha de certa forma tambem sou iniciante, não dei uma observada na sitaxe em si e no que o algoritmo deveria fazer, mas . . .

Aqui eu encontrei 2 problemas principais:

- Ao que parece identação de certas partes do código estavam erradas e precisaram ser corrigidas:

def tente ( qtdnome ):
    naleatorio = random.randint ( 1, 15 )
    while qtdnome > 0:
         print ( 'Digite um numero maior que 0: ' + int ( input ( palpite ) ) )
         qtdnome = qtdnome -1
         if int( palpite ) == naleatorio:
             print ( 'Parabens! Voce ganhou , o numero aleatorio era: ' + naleatorio )
             return 1
         elif palpite <= 0:
             print ( 'Voce digitou um numero invalido' )
             qtdnome = qtdnome+1
         else:
             print ( 'Voce errou, tente novamente!' )
         if qtdnome == 0:
             print ( 'Voce perdeu!' )
             return 0

- Outro problema era com relação ao erro de sintaxe incorreta quando tentando usar ++ como incremento:

acertos = acertos++

sendo assim eu a substitui por:

acertos = acertos + 1

- Alem de outros pequenos problemas que tenho certeza que voce vai conseguir sanar!

Obs.: Aqui eu teste o codigo no Python 3.4.3 embora na maior parte absoluta das vezes não seja dificil de se descobrir, é sempre bom especificar a versão Python usada!

Ubuntu 14.04 LTS - Python 2.7.6 - Python 3.4.3

Esperto Ter Ajudado ! ! !

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.