Python tente… exceto… senão

Resumo : neste tutorial, você aprenderá como usar a try...except...elseinstrução Python.

Introdução à instrução try…except…else do Python

A tryinstrução possui uma elsecláusula opcional com a seguinte sintaxe:

try:
    # code that may cause errors
except:
    # code that handle exceptions
else:
    # code that executes when no exception occurs
Linguagem de código:  PHP  ( php )

A try...except...elsedeclaração funciona da seguinte forma:

  • Se ocorrer uma exceção na trycláusula, o Python ignora o restante das instruções na trycláusula e a exceptinstrução é executada.
  • Caso nenhuma exceção ocorra na trycláusula, a elsecláusula será executada.

Quando você inclui a finallycláusula, elseela é executada depois trye antes da finallycláusula.

Exemplos de instruções Python try…except…else

Vejamos alguns exemplos de uso da try...except...elsedeclaração.

1) Usando a instrução try…except…else para fluxo de controle

O exemplo a seguir ilustra como usar a try...except...elsecláusula desenvolver um programa que calcula o índice de massa corporal (IMC).

Primeiro, defina uma função para calcular o (IMC) com base na altura e no peso:

def calculate_bmi(height, weight):
    """ calculate body mass index (BMI) """
    return weight / height**2
Linguagem de código:  Python  ( python )

Segundo, defina outra função para avaliar o IMC:

def evaluate_bmi(bmi):
    """ evaluate the bmi """
    if 18.5 <= bmi <= 24.9:
        return 'healthy'

    if bmi >= 25:
        return 'overweight'

    return 'underweight'
Linguagem de código:  Python  ( python )

Terceiro, defina uma nova main()função que solicite aos usuários a inserção de altura e peso e imprima o resultado do IMC:

def main():
    try:
        height = float(input('Enter your height (meters):'))
        weight = float(input('Enter your weight (kilograms):'))

    except ValueError as error:
        print('Error! please enter a valid number.')
    else:
        bmi = round(calculate_bmi(height, weight), 1)
        evaluation = evaluate_bmi(bmi)

        print(f'Your body mass index is {bmi}')
        print(f'This is considered {evaluation}!')
Linguagem de código:  Python  ( python )

A main()função usa a try...except...elseinstrução para controlar seu fluxo. Se você inserir altura e peso que não podem ser convertidos em números, ValueErrorocorrerá a exceção.

Se nenhuma exceção ocorrer, a elsecláusula será executada. Calcula o índice de IMC e exibe a avaliação.

Junte tudo.

def calculate_bmi(height, weight):
    """ calculate body mass index (BMI) """
    return weight / height**2


def evaluate_bmi(bmi):
    """ evaluate the bmi """
    if 18.5 <= bmi <= 24.9:
        return 'healthy'

    if bmi >= 25:
        return 'overweight'

    return 'underweight'


def main():
    try:
        height = float(input('Enter your height (meters):'))
        weight = float(input('Enter your weight (kilograms):'))

    except ValueError as error:
        print(error)
    else:
        bmi = round(calculate_bmi(height, weight), 1)
        evaluation = evaluate_bmi(bmi)

        print(f'Your body mass index is {bmi}')
        print(f'This is considered {evaluation}!')

main()Linguagem de código:  Python  ( python )

2) Usando Python try…except…else e finalmente exemplo

A elsecláusula é executada logo antes da finallycláusula se nenhuma exceção ocorrer na trycláusula.

O exemplo a seguir mostra como usar a try...except...else...finallycláusula:

fruits = {
    'apple': 10,
    'orange': 20,
    'banana': 30
}

key = None
while True:
    try:
        key = input('Enter a key to lookup:')
        fruit = fruits[key.lower()]
    except KeyError:
        print(f'Error! {key} does not exist.')
    except KeyboardInterrupt:
        break
    else:
        print(fruit)
    finally:
        print('Press Ctrl-C to exit.')Linguagem de código:  Python  ( python )

Como funciona.

  • Primeiro, defina o fruitsdicionário que contém três elementos.
  • Segundo, use um whileloop para obter repetidamente informações dos usuários. Ele interrompe o loop até que os usuários pressionem Ctrl-C.
  • Terceiro, use a try...except...else...finallycláusula dentro do whileloop. Usamos a entrada do usuário para localizar o elemento no dicionário.

Se a chave não existir, KeyErrorocorre a exceção, a cláusula except será executada.

Se os usuários pressionarem Ctrl-C, KeyboardInterruptocorre a exceção que executa a breakinstrução para encerrar o loop.

Se a chave for encontrada no fruitsdicionário, o programa imprime o elemento encontrado.

A finallycláusula sempre é executada. Ele mostra um lembrete aos usuários de que eles devem pressionar Ctrl-C para sair.

Resumo

  • Usar a try...except...elseinstrução Python fornece uma maneira de controlar o fluxo do programa em caso de exceções.
  • A elsecláusula é executada se nenhuma exceção ocorrer na trycláusula.
  • Nesse caso, a elsecláusula é executada depois da trycláusula e antes da finallycláusula.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *