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, …