IF dentro de outro IF

Olá,
estou começando a aprender a programar, e começei com o Python e nele é possível fazer um IF dentro de outro IF? Se sim como?


Tentei faze-lo, mas dá erro de sintaxe na linha do segundo IF (linha 23). Desde já agradeço o help.

É perfeitamente possível, como em qualquer linguagem. É previsto pela sintaxe, uma vez que o IF requer uma sequência de comandos/funções, e o IF é uma função.

O erro é indentação do segundo if, que deveria estar no mesmo nível que a linha anterior (“parcelled_out = …”).

Para explicar melhor, a sintaxe do Python é baseada na indentação (esses espaços antes das linhas). Cada nova indentação é um novo “nível”, e cada novo nível é um novo “bloco de código” (em termos bem simplificados). Quando você coloca o IF um nível abaixo do “parcelled_out”, isso se torna um erro de sintaxe, pois uma atribuição de valor não prevê o início de um novo bloco de código.

Ou seja, quando o seguinte código é executado, z=3 só será executado se x for igual a y, e “a=2” será sempre executado.

if x == y:
    z=3
a=2

Porém, se for escrito da forma que está abaixo, a=2 só seria executado se a condição de “z=3” fosse verdadeira, mas z=3 não é uma função booleana (verdadeiro ou falso). Então o interpretador não consegue entender isso e retorna um erro de sintaxe.

if x == y:
    z=3
        a=2

Mas se você escrever o seguinte código, os IF serão executados normalmente a medida que os IFs anteriores retornarem verdadeiro, pois a função IF é uma função booleana e que requer um novo bloco de código.

if a == 2:
    if b == 3:
        if c == 4:
            if .... :

O mesmo serve para o For, While, …

1 Curtida