Condicionales en Python, if, else, elif

De forma predeterminada, las declaraciones en el script se ejecutan secuencialmente desde la primera hasta la última. Si la lógica de procesamiento lo requiere, el flujo secuencial se puede alterar de dos maneras:

Pitón utiliza el if palabra clave para implementar el control de decisiones. La sintaxis de Python para ejecutar un bloque condicionalmente es la siguiente: Sintaxis:

si [expresión booleana]:
     declaración1
     declaración2
     ...
     declaraciónN
 

Cualquier expresión booleana que evalúe a Trueo False aparece después de la if palabra clave. Utilizar el :símbolo y presione Entrar después de la expresión para comenzar un bloque con una sangría aumentada. Se ejecutarán una o más sentencias escritas con el mismo nivel de sangría if la expresión booleana se evalúa como True.

Para finalizar el bloque, disminuya la sangría. Las declaraciones subsiguientes después del bloque se ejecutarán fuera del if condición. El siguiente ejemplo demuestra la ifcondición. Ejemplo: si Condición

price = 50

if price < 100:
    print("price is less than 100")

Producción

price is less than 100

En el ejemplo anterior, la expresión price < 100 evalúa a True, por lo que ejecutará el bloque. Él if bloque comienza desde la nueva línea después :y todas las declaraciones bajo el if la condición comienza con una sangría aumentada, ya sea espacio o tabulación. Sobre el if bloque contiene sólo una declaración. El siguiente ejemplo tiene varias declaraciones en la condición if. Ejemplo: declaraciones múltiples en el bloque if

price = 50
quantity = 5
if price*quantity < 500:
    print("price*quantity is less than 500")
    print("price = ", price)
    print("quantity = ", quantity)

Producción

price*quantity is less than 500
price = 50
quantity = 5

Arriba, la condición if contiene varias declaraciones con la misma sangría. Si todas las declaraciones no están en la misma sangría, ya sea un espacio o una tabulación, entonces generará un IdentationError. Ejemplo: sangría no válida en el bloque

price = 50
quantity = 5
if price*quantity < 500:
    print("price is less than 500")
    print("price = ", price)
     print("quantity = ", quantity)

Producción

  print("quantity = ", quantity)
 ^
IdentationError: unexpected indent

Las declaraciones con el mismo nivel de sangría que if la condición no se considerará en el bloque if. Ellos considerarán fuera del if condición. Ejemplo: declaraciones fuera de bloque

price = 50
quantity = 5
if price*quantity < 100:
    print("price is less than 500")
    print("price = ", price)
    print("quantity = ", quantity)
print("No if block executed.")

Producción

No if block executed.

El siguiente ejemplo muestra varias condiciones if. Ejemplo: Múltiples condiciones if

price = 100

if price > 100:
 print("price is greater than 100")

if price == 100:
  print("price is 100")

if price < 100:
    print("price is less than 100")

Producción

price is 100

Note que cada if bloque contiene una declaración en una sangría diferente, y eso es válido porque son diferentes entre sí. Nota Se recomienda utilizar 4 espacios o una tabulación como nivel de sangría predeterminado para una mayor legibilidad.

otra condición

Junto con if declaración, la elseLa condición se puede usar opcionalmente para definir un bloque alternativo de declaraciones que se ejecutarán si la expresión booleana en el if la condición se evalúa como False. Sintaxis:

si [expresión booleana]:
     declaración1
     declaración2
     ...
     declaraciónN
 demás:
     declaración1
     declaración2
     ...
     declaraciónN
 

Como se mencionó antes, el bloque sangrado comienza después del :símbolo, después de la expresión booleana. Se ejecutará cuando la condición sea True. Tenemos otro bloque que debe ejecutarse cuando el ifla condición es False. Primero, complete el if bloquear con un retroceso y escribir else, poner añadir el :símbolo delante del nuevo bloque para comenzarlo, y agregue las declaraciones requeridas en el bloque. Ejemplo: otra condición

price = 50

if price >= 100:
    print("price is greater than 100")
else:
    print("price is less than 100")

Output

price is less than 100

En el ejemplo anterior, la condición if price >= 100 es False, entonces el elsese ejecutará el bloque. El bloque else también puede contener varias declaraciones con la misma sangría; de lo contrario, aumentará la IndentationError.

Tenga en cuenta que no puede tener varios elsebloques, y debe ser el último bloque.

elif Condition

Utilizar el elif condition se utiliza para incluir varias expresiones condicionales después de la if condición o entre el if y else condiciones. Sintaxis:

si [expresión booleana]:
     [declaraciones]
 elif [expresión booleana]:
     [declaraciones]
 elif [expresión booleana]:
     [declaraciones]
 demás:
     [declaraciones]            
 

elif [expresión booleana]:

price = 100

if price > 100:
    print("price is greater than 100")
elif price == 100:
    print("price is 100")
elif price < 100:
    print("price is less than 100")
    
//price is 100

Él elif el bloque se ejecuta si la condición especificada se evalúa como True. Ejemplo: condiciones if-elif

price = 100

if price > 100:
    print("price is greater than 100")
elif price == 100:
    print("price is 100")
elif price < 100:
    print("price is less than 100")

Producción

price is 100

En el ejemplo anterior, el elif las condiciones se aplican después de la if condición. Python evaluará el ifcondición y si se evalúa como Falseentonces evaluará el elifbloques y ejecutar el elif bloque cuya expresión se evalúa como True. si es multiple elif las condiciones se vuelven True, entonces el primero elif se ejecutará el bloque.

El siguiente ejemplo demuestra las condiciones if, elif y else. Ejemplo: condiciones if-elif-else

price = 50

if price > 100:
    print("price is greater than 100")
elif price == 100:
    print("price is 100")
else price < 100:
    print("price is less than 100")

Producción

price is less than 100

Todas las condiciones if, elif y else deben comenzar desde el mismo nivel de sangría, de lo contrario, aumentará el IndentationError. Ejemplo: sangría no válida

price = 50

if price > 100:
    print("price is greater than 100")
 elif price == 100:
    print("price is 100")
  else price < 100:
    print("price is less than 100")

Producción

  elif price == 100:
                    ^
IdentationError: unindent does not match any outer indentation level

Condiciones anidadas if, elif, else

Python admite condiciones anidadas if, elif y else. La condición interna debe tener una sangría mayor que la condición externa, y todas las declaraciones debajo de un bloque deben tener la misma sangría. Ejemplo: condiciones if-elif-else anidadas

price = 50
quantity = 5
amount = price*quantity

if amount > 100:
    if amount > 500:
        print("Amount is greater than 500")
    else:
        if amount < 500 and amount > 400:
            print("Amount is")
        elif amount < 500 and amount > 300:
            print("Amount is between 300 and 500")
        else:
            print("Amount is between 200 and 500")
elif amount == 100:
    print("Amount is 100")
else:
    print("Amount is less than 100")

Producción

Amount is between 200 and 500