Jump to content

Archived

This topic is now archived and is closed to further replies.

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?

Share this post


Link to post
Share on other 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 ! ! !

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.