I can’t get the comparison into Elif

Asked

Viewed 41 times

0

I need to make a pair or odd game with the computer, I tried to make the comparison of if to know if I chose pair or odd with 'Pp' and 'Ii' so I wasn’t getting it, I tried to use Lower() and I wasn’t going either. I decided to use a if 'p' or 'P' in pi: same for odd, it turns out that even though I pick odd it’s entering the pair loop, which may be ?

from random import randint
soma = vitorias = 0
while True:
    comp = randint(1, 10)
    print(comp)
    valor = int(input('Digite um valor : '))
    pi = str(input('Par ou Impar ? [P/I]'))
    if 'p' or 'P' in pi:
        soma = valor + comp
        print(f'{valor} + {comp} = {soma}')
            if soma % 2 == 0:
                print(f'A soma dos numeros escolhidos foi {soma}, {soma} é par, você venceu')
                vitorias += 1
            else:
                print(f'A soma dos numeros escolhidos foi {soma}, {soma} é impar, você perdeu')
                break
     elif 'i' or 'I' in pi:
            soma = valor + comp
            print(f'{valor} + {comp} = {soma}')
            if soma % 2 != 0:
                print(f'A soma dos numeros escolhidos foi {soma}, {soma} é impar, você venceu')
                vitorias += 1
            else:
                print(f'A soma dos numeros escolhidos foi {soma}, {soma} é par, você perdeu')
                break
    print(f'Você teve {vitorias} vitorias consecutivas')
  • I hope you can understand the formatting, I’m still a little new aq on the site

  • With Elif misaligned from the rest this way it becomes difficult to evaluate.

  • Friend your indentation is pretty bad

  • so it gets better to understand ? http://prntscr.com/ngz0z4 i n understood the part of the misaligned Elif, it n would have to stay in if msm line?

1 answer

0


Your indentation is bad, I tested your code and gave indentation error, and in addition there are some bugs, for example, if you type Odd, will fall in If, the best to do is to use a comparison if pi == 'p' or pi == 'P', I made some adjustments to your code, with slight changes and better indenting and works perfectly, no bugs. In short, improve your indentation, indent only after functions like if, else, while, for and def.

from random import randint
soma = vitorias = 0
while True:
   comp = randint(1, 10)
   print(comp)
   valor = int(input('Digite um valor : '))
   pi = str(input('Par ou Impar ? [P/I]'))
   if pi == 'p' or pi == 'P': #No cógigo que você postou o erro começa aqui
       soma = valor + comp
       print(f'{valor} + {comp} = {soma}')
       if soma % 2 == 0:
            print(f'A soma dos numeros escolhidos foi {soma}, {soma} é par, você venceu')
            vitorias += 1
       else:
            print(f'A soma dos numeros escolhidos foi {soma}, {soma} é impar, você perdeu')
            break
   elif pi == 'i' or pi == 'I':
       soma = valor + comp
       print(f'{valor} + {comp} = {soma}')
       if (soma % 2):
            print(f'A soma dos numeros escolhidos foi {soma}, {soma} é impar, você venceu')
            vitorias += 1
       else:
            print(f'A soma dos numeros escolhidos foi {soma}, {soma} é par, você perdeu')
            break
   else:
            print('Escolheu a opção errada tente novamente.')
   print(f'Você teve {vitorias} vitorias consecutivas')
  • Thank you, swap if 'p' or 'P' in pi: for if pi == 'p' or pi == 'P': it worked, but you can tell why n worked before ?

  • Um... I don’t know :#, I was able to correct thinking about what I could do better.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.