1
resposta

[Dúvida] essa foi a minha forma de resolver :)

o que eu poderia melhorar?


def funcao_somar(primeiro_valor,segundo_valor):
  soma=primeiro_valor+segundo_valor
  print(f'O resultado da soma: {soma}')


def funcao_subtrair(primeiro_valor,segundo_valor):
  subtracao=primeiro_valor-segundo_valor
  print(f'O resultado da subtração: {subtracao}')

def funcao_multiplicacao(primeiro_valor,segundo_valor):
        multiplicacao=primeiro_valor*segundovalor
        print('O resultado da multiplicação:  {multiplicacao}')
def funcao_divisao(primeiro_valor,segundo_valor):
  try:
    divisao=primeiro_valor/segundo_valor
    print(f'O resultado da divisão: {divisao}')
  except ZeroDivisionError:
    print('Erro: Divisão por zero não é permitida.')


def calculadora():

  try: 
      primeiro_valor=float(input('Digite o primeiro valor: '))
      operacao=input('Escolha a operação (+,-,*,/): ')
      segundo_valor=float(input('Digite o segundo valor: '))
      lista_operacoes=['+','-','*','/']


      if operacao not in lista_operacoes :
         print('Opção inválida')

      match operacao:
       case'+':
           funcao_somar(primeiro_valor,segundo_valor)
       case '-':
           funcao_subtrair(primeiro_valor,segundo_valor)
       case  '*':
           funcao_multiplicacao(primeiro_valor,segundo_valor)
        case '/':
            funcao_divisao(primeiro_valor,segundo_valor)



  except ValueError:
     print('Erro: Entrada inválida. Digite apenas números.')

calculadora()
1 resposta

Oii, Andressa!

Parabéns pela sua dedicação em resolver o exercício. Você estruturou bem a lógica separando as operações em funções e aplicando o tratamento de erros com try-except. Essa organização ajuda muito na leitura do código.

Pra que o seu código funcione perfeitamente, há alguns pontos de atenção, principalmente relacionados à sintaxe do Python e nomes de variáveis:

1. Erro de digitação na variável
Na função funcao_multiplicacao, a variável usada no cálculo está escrita como segundovalor (tudo junto), mas o parâmetro recebido é segundo_valor. Isso pode causar um erro de nome não definido.

2. Formatação de string (f-string)
Ainda na função de multiplicação, faltou colocar a letra f antes das aspas no print. Sem o f, o Python imprime o texto exatamente como está escrito (incluindo as chaves), em vez de mostrar o valor da variável.

3. Indentação
O Python é rigoroso com o alinhamento do código.

  • Dentro do match, o case '/' está com um recuo diferente dos outros casos.
  • Dentro da funcao_multiplicacao, o conteúdo também está desalinhado em relação ao def.

Abaixo, deixo o código com esses ajustes para você comparar:

def funcao_somar(primeiro_valor, segundo_valor):
    soma = primeiro_valor + segundo_valor
    print(f'O resultado da soma: {soma}')

def funcao_subtrair(primeiro_valor, segundo_valor):
    subtracao = primeiro_valor - segundo_valor
    print(f'O resultado da subtração: {subtracao}')

def funcao_multiplicacao(primeiro_valor, segundo_valor):
    # correção: nome da variável corrigido e f-string adicionada
    multiplicacao = primeiro_valor * segundo_valor
    print(f'O resultado da multiplicação: {multiplicacao}')

def funcao_divisao(primeiro_valor, segundo_valor):
    try:
        divisao = primeiro_valor / segundo_valor
        print(f'O resultado da divisão: {divisao}')
    except ZeroDivisionError:
        print('Erro: Divisão por zero não é permitida.')

def calculadora():
    try:
        primeiro_valor = float(input('Digite o primeiro valor: '))
        operacao = input('Escolha a operação (+,-,*,/): ')
        segundo_valor = float(input('Digite o segundo valor: '))
        
        lista_operacoes = ['+', '-', '*', '/']

        if operacao not in lista_operacoes:
            print('Opção inválida')
        
        # correção: indentação alinhada corretamente
        match operacao:
            case '+':
                funcao_somar(primeiro_valor, segundo_valor)
            case '-':
                funcao_subtrair(primeiro_valor, segundo_valor)
            case '*':
                funcao_multiplicacao(primeiro_valor, segundo_valor)
            case '/':
                funcao_divisao(primeiro_valor, segundo_valor)

    except ValueError:
        print('Erro: Entrada inválida. Digite apenas números.')

calculadora()

Continue praticando, você está no caminho certo.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!