Python Tutorial - Controle de Decisão

Jinku Hu 30 janeiro 2023
  1. Declaração if...else
  2. if Declaração
  3. if...else Declaração
  4. if...elif...else Declaração
  5. Declarações aninhadas if
Python Tutorial - Controle de Decisão

Nesta seção, você aprenderá a construção da tomada de decisão na programação Python. A construção de decisão mais utilizada é uma construção if...else.

Declaração if...else

A declaração if...else é utilizada quando você tem dois blocos de declarações e quer executar apenas uma com base em algumas condições. Na programação Python, o if...elif...else é utilizado principalmente como uma construção de tomada de decisão.

if Declaração

Na instrução if você tem apenas um bloco de instruções e este bloco é executado apenas quando a condição é True, ignorado quando a condição é False.

Abaixo está a sintaxe do comando if em Python:

if condition:
    statement(s)

O corpo do comando if em Python não é rodeado por chaves encaracoladas, mas em vez disso, é utilizada uma indentação. O fim do corpo é indicado pela primeira linha não intencional.

Exemplo de declaração if

Considere o seguinte exemplo no qual a instrução if é utilizada:

a = 24
if a % 2 == 0:
    print(a, "is an even number")
b = 23
if b % 2 == 0:
    print(b, "is an odd number")
24 is an even number

Nesse código, a variável a recebe primeiro um valor e depois a condição na instrução if é avaliada. Ela verifica se a é um número par ou não tomando o módulo de a com 2 e se o resultado de % (mod) é 0, então o controle entra no corpo do if e a instrução print é executada.

Então b recebe um número ímpar 23. A condição na instrução if não é True, portanto print(b, "is an odd number") não será executada.

if...else Declaração

O seguinte é a sintaxe de uma declaração if...else:

if condition:
    block of statements
else:
    block of statements

No if...else, se a condição if for True, o bloco de instruções correspondente é executado, caso contrário, o bloco de instruções na parte else será executado.

Exemplo de comando if...else

Considere o código abaixo no qual if...else é utilizado:

a = 44
if a % 2 == 0:
    print(a, "is an even number")
else:
    print(a, "is an odd number")
44 is an even number

Aqui se a é par, imprimirá a é um número par, caso contrário imprimirá a é um número ímpar.

Nota
Os blocos if e else não poderiam ser ambos executados ou ignorados. Apenas um bloco é executado com base na condição True ou não.

if...elif...else Declaração

O seguinte é a sintaxe da declaração if...elif...else:

if condition:
    block of statements
elif condition:
    block of statements
else:
    block of statements

elif significa else if e pode ser utilizado várias vezes nesta construção if...elif...else.

Quando a condição sob if se torna False, a condição de elif será verificada e assim por diante. Quando todas as condições de if e elif são False, a parte else será executada.

Nota
Apenas um bloco será executado.

Exemplo de declaração

Considere o código abaixo no qual utilizamos a declaração if...elif...else que verifica múltiplas condições:

a = -34
if a > 0:
    print("Number is Positive")
elif a < 0:
    print("Number is Negative")
else:
    print("Number is zero")
Number is Negative

Declarações aninhadas if

Em Python, você pode ter uma declaração if dentro de outra if. Isso é chamado de declaração de if aninhada.

Você pode aninhar qualquer tipo de comando if para qualquer número de vezes. Mas não é uma boa prática utilizar estruturas aninhadas do if em linguagens de programação, pois a legibilidade do programa se torna pior.

Exemplo de comandos if aninhados

No código seguinte, a estrutura aninhada if é utilizada para encontrar o maior número:

T = 52

if T > 25:
    if T < 50:
        print("Temperature is higher than 25 but lower than 50")
    else:
        print("Temperature is higher than 50")
else:
    if T < 0:
        print("Temperature is lower than 0")
    else:
        print("Temperature is higher than 0 but lower than 25")
Temperature is higher than 50
Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook