Introducción
La toma de decisiones es uno de los conceptos fundamentales de la programación informática. Python admite declaraciones de control de flujo comunes que se encuentran en otros lenguajes, con algunas modificaciones. La if
control if es una de las sentencias más básicas y conocidas que se utiliza para ejecutar código en función de una condición específica.
En este artículo, veremos los conceptos básicos de la if
en Python.
Declaración if de Python
La forma más simple de la if
en Python es la siguiente:
if EXPRESSION:
STATEMENT
La if
comienza con la if
seguida de la expresión condicional.
El EXPRESSION
debe ir seguida de dos puntos ( :
). Si EXPRESSION
se evalúa como True
, se ejecuta STATEMENT
Si EXPRESSION
devuelve False
, no sucede nada, STATEMENT
se ignora. STATEMENT
puede ser cualquier declaración, incluidas declaraciones múltiples o if
Para ejecutar ninguna instrucción, use la instrucción pass
El STATEMENT
comienza con una sangría y termina con la primera línea sin sangría. La mayoría de las personas optan por utilizar la sangría de 4 o 2 espacios. La Guía de estilo oficial para el código Python recomienda usar 4 espacios por nivel de sangría y evitar mezclar el uso de tabulaciones y espacios para la sangría.
Echemos un vistazo al siguiente script de ejemplo que verifica si un cierto número es mayor que 5.
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
Guarde el código en un archivo y ejecútelo desde la línea de comando:
python test.py
El guión le pedirá que ingrese un número. Por ejemplo, si ingresa 10, la expresión condicional se evaluará como True
(10 es mayor que 5) y se ejecutará la función de print
10 is greater than 5.
Python admite operaciones de comparación estándar:
a == b
: verdadero sia
yb
son iguales.a!= b
: verdadero sia
yb
no son iguales.a > b
: verdadero sia
es mayor queb
.a >= b
: verdadero sia
es igual o mayor queb
.a < b
: verdadero sia
es menor queb
.a <= b
: verdadero sia
es igual o menor queb
.
También puede usar la palabra clave in
para verificar si un valor está presente en un iterable (cadena, lista, tupla, diccionario, etc.):
s = 'noviello'
if 'ze' in s:
print('True.')
Aquí hay otro ejemplo usando un diccionario:
d = {'a': 2, 'b': 4}
if 'a' in d:
print('True.')
Si se usa en un diccionario, la palabra clave in
verifica si el diccionario tiene una clave específica.
Para negar la expresión condicional, use el operador lógico not
:
number = int(input('Enter a number: '))
if not number < 5:
print(number, 'is greater than 5.')
Si... otra declaración
Una if..else
evalúa una condición y ejecuta cualquiera de las sentencias basándose en el resultado.
La if..else
tiene la siguiente forma:
if EXPRESSION:
STATEMENT1
else:
STATEMENT2
Si EXPRESSION
se evalúa como True
, se ejecutará STATEMENT1
De lo contrario, si EXPRESSION
devuelve False
, se ejecutará STATEMENT2
Es posible tener solo una else
en la declaración.
La palabra clave else
extremo mosto con dos puntos ( :
) y estar en el mismo nivel de indentación de la palabra clave if
apropiado.
else
una cláusula else al script de ejemplo anterior:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
else:
print(number, 'is equal or less than 5.')
Si ejecuta el código e ingresa un número, el script imprimirá un mensaje diferente dependiendo de si el número es mayor o menor que /igual a 5.
Declaración If..elif..else
La elif
es la abreviatura de else if
.
La if..elif..else
tiene la siguiente forma:
if EXPRESSION1:
STATEMENT1
elif: EXPRESSION2:
STATEMENT2
else:
STATEMENT3
Si EXPRESSION1
se evalúa como True
, se ejecutará STATEMENTS1
Si EXPRESSION2
se evalúa como True
, se ejecutará STATEMENTS2
Si ninguna de las expresiones se evalúa como True
, se ejecuta STATEMENTS3
La palabra clave elif
debe terminar con dos puntos ( :
) y estar en el mismo nivel de indentación de la palabra clave if
apropiado. Es posible tener una o más elif
en la declaración. La else
es opcional. Si else
y todas las expresiones se evalúan como False
, no se ejecutará ninguna de las declaraciones.
Las condiciones se evalúan secuencialmente. True
se devuelve una condición Verdadera, las condiciones restantes no se ejecutan y el control del programa se mueve al final de las if
.
elif
añadir una cláusula elif a la secuencia de comandos anterior:
number = int(input('Enter a number: '))
if number > 5:
print(number, 'is greater than 5.')
elif number < 5:
print(number, 'is less than 5.')
else:
print(number, 'is equal to 5.')
A diferencia de la mayoría de los lenguajes de programación, Python no tiene declaraciones de switch
o case
Se puede usar una secuencia de múltiples elif
switch
o un sustituto de case
Declaraciones if anidadas
Python le permite anidar if
if dentro de if
. Generalmente, siempre debe evitar la sangría excesiva e intentar usar elif
lugar de anidar if
.
La siguiente secuencia de comandos le pedirá que ingrese tres números e imprima el mayor número de números.
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2:
if number1 > number3:
print(number1, 'is the largest number.')
else:
print(number3, 'is the largest number.')
else:
if number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
Así es como se verá la salida:
Enter the first number: 455
Enter the second number: 567
Enter the third number: 354
567 is the largest number.
Varias condiciones
La lógica de los or
y and
permite combinar múltiples condiciones en if
.
Aquí hay otra versión del script para imprimir el mayor de los tres números. En esta versión, en lugar de if
, usaremos el operador lógico and
y elif
.
number1 = int(input('Enter the first number: '))
number2 = int(input('Enter the second number: '))
number3 = int(input('Enter the third number: '))
if number1 > number2 and number1 > number3:
print(number1, 'is the largest number.')
elif number2 > number3 and number2 > number3:
print(number2, 'is the largest number.')
else:
print(number3, 'is the largest number.')
Conclusión
El if
, if..else
y if..elif..else
le permiten controlar el flujo de ejecución de Python mediante la evaluación de ciertas condiciones.