1
resposta

[Dúvida] Momento dos Projetos: Questão 10

Um número decimal não pode ser ímpar, levando isso em conta, tentei modificar meu código para ficar de acordo, entretanto, não está funcionando. O que fiz foi colocar a condicional relacionada a par ou ímpar dentro da condicional de caso o número seja inteiro, ou seja, só vai ser verificado se o número é par ou ímpar e o número for inteiro, porque não dá certo? (Outra coisa, a variável 'parouimpar' existindo somente dentro da sua devida condicional, por algum motivo, ela sempre aparece no print final)
P.S: A indentação aqui foi com deus.

n1 = float(input('OPERAÇÕES COM DOIS NÚMEROS E INFORMAÇÕES DO RESULTADO\nInforme o primeiro número: '))
op = int(input('Qual a operação que deseja realizar?\nDigite:\n1 - Soma\n2 - Subtração\n3 - Multiplicação\n4 - Divisão\n'))
n2 = float(input('Informe o segundo número:'))

if op == 1:
  resposta = n1 + n2
  print(f'O resultado da soma de {n1} + {n2} é: {resposta}')
elif op == 2:
  resposta = n1 - n2
  print(f'O resultado da subtração de {n1} - {n2} é: {resposta}')
elif op == 3:
  resposta = n1 * n2
  print(f'O resultado da multiplicação de {n1} x {n2} é: {resposta}')
elif op == 4:
  resposta = n1 / n2
  print(f'O resultado da divisão de {n1} / {n2} é: {resposta}')
else:
  print('Operação informada inválida.')

if resposta > 0:
  posouneg = 'positivo'
elif resposta == 0:
  posouneg = 'nulo'
else:
  posouneg = 'negativo'

if resposta % 1 == 0:
  decouint = 'inteiro'

  if resposta % 2 == 0:
    parouimpar = 'par'
  else:
    parouimpar = 'ímpar'

else:
  decouint = 'decimal'

print(f'{resposta} é {decouint} {parouimpar} e {posouneg}.')
1 resposta

Ei, Mariana! Tudo bem?

O número sempre vir decimal, é porque você definiu o n1 e n2 como float, tudo vai virar float mesmo que seja inteiro. Aqui, você pode colocar uma verificação se é inteiro ou decimal, por exemplo:

if resposta % 1 == 0:
    decouint = 'inteiro'
    resposta = int(resposta)

Esse código remove ".0" quando for inteiro.

Sobre o problema do parouimpar aparecer sempre, o seu print(f'{resposta} é {decouint} {parouimpar} e {posouneg}.') sempre esperar o parouimpar mesmo quando o número é decimal. Nele, teste separar os casos:

if resposta % 1 == 0:
    decouint = 'inteiro'
    resposta = int(resposta) 

    if resposta % 2 == 0:
        parouimpar = 'par'
    else:
        parouimpar = 'ímpar'		
    print(f'{resposta} é {decouint} {parouimpar} e {posouneg}.')

else:
    decouint = 'decimal'
    print(f'{resposta} é {decouint} e {posouneg}.')

Deixo aqui o código e o notebook que usei para fazer o teste:

n1 = float(input('OPERAÇÕES COM DOIS NÚMEROS E INFORMAÇÕES DO RESULTADO\nInforme o primeiro número: '))
op = int(input('Qual a operação que deseja realizar?\nDigite:\n1 - Soma\n2 - Subtração\n3 - Multiplicação\n4 - Divisão\n'))
n2 = float(input('Informe o segundo número: '))


if op == 1:
    resposta = n1 + n2
    print(f'O resultado da soma de {n1} + {n2} é: {resposta}')
elif op == 2:
    resposta = n1 - n2
    print(f'O resultado da subtração de {n1} - {n2} é: {resposta}')
elif op == 3:
    resposta = n1 * n2
    print(f'O resultado da multiplicação de {n1} x {n2} é: {resposta}')
elif op == 4:
    resposta = n1 / n2
    print(f'O resultado da divisão de {n1} / {n2} é: {resposta}')
else:
    print('Operação informada inválida.')
    exit()  


if resposta > 0:
    posouneg = 'positivo'
elif resposta == 0:
    posouneg = 'nulo'
else:
    posouneg = 'negativo'

# Verificação se é inteiro ou decimal
if resposta % 1 == 0:
    decouint = 'inteiro'
    resposta = int(resposta)

 
    if resposta % 2 == 0:
        parouimpar = 'par'
    else:
        parouimpar = 'ímpar'

   
    print(f'{resposta} é {decouint} {parouimpar} e {posouneg}.')

else:
    decouint = 'decimal'

    print(f'{resposta} é {decouint} e {posouneg}.')

Ah, sobre a identação temos a funcionalidade de código no bloco de mensagem. Clique nele para aparecer no box e escreva seu código dentro dele:

Captura de tela do cabeçalho de funcionalidade do box de mensagem da alura. O ícone de bloco de código está marcado de verde.

Espero ter ajudado e conte sempre conosco aqui no fórum para te auxiliar nos estudos.

Até mais e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado