5
respostas

Onde está o erro?

Boa noite, galera.

Estou tentando rodar esse código mas aparece erro. O que estou fazendo de errado?

def logica (numero_1,numero_2):
    if num_1+num_2>0:
      return  print("O número é positivo")
    else:
        return print("O número é negativo")
        if num_1 + num_2%2==0:
            return print("O número é par")
        else:
            return print("O número é impar")
            if num_1+num_2 == round():
                return print("O número é inteiro")
            else:
                return print("O número é decimal")


num_1=input(int("Digite um número: "))
num_2=input(int("Digite mais um número: "))
escolha=input("Escolha qual operação deseja realizar: ")
if escolha == "+":
    print(f'{num_1 + num_2}')
    logica()
5 respostas

Olá, Fabio, tudo bem?

Analisei o seu código e tenho alguns pontos de melhorias:

  • O input deve ser usado para ler a entrada do usuário como string, e depois você deve convertê-la para o tipo desejado. No seu caso, você está tentando converter o valor antes de ler a entrada. A ordem está inversa.

Além disso, a função logica tem alguns problemas no seu código que precisam ser corrigidos:

  • No seu código, os nomes dos parâmetros na função logica são numero_1 e numero_2, e, portanto, você deveria usar esses nomes dentro da função. Você usou num_1 e num_2 em vez de numero_1 e numero_2 dentro da função.

  • A lógica do seu código está um pouco confusa, especialmente com os if-else aninhados. Além disso, você está tentando usar round() sem argumentos.

Por fim, quando você chama a função logica, você deve passar os argumentos num_1 e num_2 para a função.

Segue o código corrigido:

def logica(numero_1, numero_2):
    soma = numero_1 + numero_2

    if soma > 0:
        print("O número é positivo")
    else:
        print("O número é negativo")

    if soma % 2 == 0:
        print("O número é par")
    else:
        print("O número é ímpar")
    
    # Verificar se a soma é um número inteiro
    if int(soma) == soma:
        print("O número é inteiro")
    else:
        print("O número é decimal")

num_1 = int(input("Digite um número: "))
num_2 = int(input("Digite mais um número: "))
escolha = input("Escolha qual operação deseja realizar: ")

if escolha == "+":
    resultado = num_1 + num_2
    print(f'{resultado}')
    logica(num_1, num_2)

Espero ter ajudado.

Qualquer dúvida, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado, Monalisa,

Mas uma dúvida, nesse código está apenas de soma, mas e se eu quiser fazer das demais operações, deverei dentro da def fazer várias vezes essas linhas de código só alterando a operação?

Olá, Fabio,

Para isso, podemos modificar a função logica para receber uma operação como argumento e aplicar essa operação aos números.

O código ficaria assim:

def logica(numero_1, numero_2, operacao):
    if operacao == "+":
        resultado = numero_1 + numero_2
    elif operacao == "-":
        resultado = numero_1 - numero_2
    elif operacao == "*":
        resultado = numero_1 * numero_2
    elif operacao == "/":
        if numero_2 != 0:
            resultado = numero_1 / numero_2
        else:
            print("Divisão por zero não é permitida.")
            return
    else:
        print("Operação inválida.")
        return

    print(f'O resultado da operação é: {resultado}')

    if resultado > 0:
        print("O número é positivo")
    else:
        print("O número é negativo")

    if resultado % 2 == 0:
        print("O número é par")
    else:
        print("O número é ímpar")

    if int(resultado) == resultado:
        print("O número é inteiro")
    else:
        print("O número é decimal")

num_1 = int(input("Digite um número: "))
num_2 = int(input("Digite mais um número: "))
escolha = input("Escolha qual operação deseja realizar (+, -, *, /): ")

logica(num_1, num_2, escolha)

Neste código, adicionei uma verificação para cada operação matemática básica dentro da função logica. A função agora recebe um terceiro parâmetro, operacao, que define qual operação matemática deve ser realizada. Dessa forma, você pode escolher qual operação deseja executar ao chamar a função logica.

Se tiver mais dúvidas ou precisar de mais alguma coisa, compartilhe no fórum.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Muito obrigado. Eu tenho uma certa dificuldade sobre funções, qual curso aqui seria uma mais indicado para eu entender mais sobre?

Oi Fabio

Recomendo o curso Python para Data Science: trabalhando com funções, estruturas de dados e exceções e Python: crie a sua primeira aplicação.

Espero ter ajudado e fico à disposição.

Abraços.