Creado por Nicolás Labbé
Un código es una secuencia de instrucciones, que por norma general son ejecutadas una tras otra. Podemos verlo como una receta de cocina, en la que tenemos unos pasos a seguir. Empezamos por el principio, vamos realizando cada tarea, y una vez hemos llegado al final, hemos terminado. Nuestra receta en código podría ser la siguiente:
Sin embargo, en muchas ocasiones no basta con ejecutar las instrucciones una tras otra desde el principio hasta llegar al final.
If
de PythonPython admite las condiciones lógicas habituales de las matemáticas:
a == b
a != b
a < b
a: a <= b
a > b
a >= b
Estas condiciones se pueden utilizar de varias maneras, más comúnmente en "declaraciones if" y bucles.
Una "declaración if" se escribe utilizando la palabra clave if
.
>>> a = 33
>>> b = 200
>>> if b > a:
... print("b is greater than a")
...
b is greater than a
En este ejemplo, usamos dos variables, a y b , que forman parte de la instrucción if para comprobar si b es mayor que a . Como a es 33 y b es 200 , sabemos que 200 es mayor que 33, por lo que mostramos en pantalla que "b es mayor que a".
❌ Declaración If, sin sangría (generará un error):
>>> a = 33
>>> b = 200
>>> if b > a:
... print("b is greater than a") # you will get an error
File "", line 2
print("b is greater than a") # you will get an error
^
IndentationError: expected an indented block after 'if' statement on line 1
>>>
La palabra clave elif
es la forma que tiene Python de decir "si las condiciones anteriores no eran verdaderas, entonces prueba esta condición".
>>> a = 33
>>> b = 33
>>> if b > a:
... print("b is greater than a")
... elif a == b:
... print("a and b are equal")
...
a and b are equal
En este ejemplo , a es igual a b , por lo que la primera condición no es verdadera, pero la condición elif sí lo es, por lo que imprimimos en pantalla que "a y b son iguales".
La palabra clave else captura cualquier cosa que no esté capturada por las condiciones anteriores.
>>> a = 200
>>> b = 33
>>> if b > a:
... print("b is greater than a")
... elif a == b:
... print("a and b are equal")
... else:
... print("a is greater than b")
...
a is greater than b
En este ejemplo , a es mayor que b , por lo que la primera condición no es verdadera, tampoco lo es la condición elif , por lo que vamos a la condición else e imprimimos en la pantalla que "a es mayor que b".
Si solo tiene una declaración para ejecutar, puede colocarla en la misma línea que la declaración if.
>>> a = 200
>>> b = 33
>>> if a > b: print("a is greater than b")
...
a is greater than b
Si solo tiene una declaración para ejecutar, una para if y otra para else, puede colocarlas todas en la misma línea:
>>> a = 2
>>> b = 330
>>> print("A") if a > b else print("B")
B
También puedes tener varias declaraciones else en la misma línea:
a = 330
b = 330
print("A") if a > b else print("=") if a == b else print("B")
También puedes tener varias declaraciones else en la misma línea:
>>> a = 330
>>> b = 330
>>> print("A") if a > b else print("=") if a == b else print("B")
=
La palabra clave and
es un operador lógico y se utiliza para combinar declaraciones condicionales:
>>> a = 200
>>> b = 33
>>> c = 500
>>> if a > b and c > a:
... print("Both conditions are True")
...
Both conditions are True
La palabra clave or
es un operador lógico y se utiliza para combinar declaraciones condicionales:
>>> a = 200
>>> b = 33
>>> c = 500
>>> if a > b or a > c:
... print("At least one of the conditions is True")
...
At least one of the conditions is True
La palabra clave not
es un operador lógico y se utiliza para revertir el resultado de la declaración condicional:
>>> a = 33
>>> b = 200
>>> if not a > b:
... print("a is NOT greater than b")
...
a is NOT greater than b
Puedes tener declaraciones if
dentro de declaraciones if
, esto se llama declaraciones anidadas if .
>>> a = 33
>>> b = 200
>>> if not a > b:
... print("a is NOT greater than b")
...
a is NOT greater than b
Las declaraciones if
no pueden estar vacías, pero si por alguna razón tiene una ifdeclaración sin contenido, coloque la passdeclaración para evitar obtener un error.
>>> a = 33
>>> b = 200
>>>
>>> if b > a:
... pass
...
Con el bucle while podemos ejecutar un conjunto de sentencias siempre que una condición sea verdadera.
>>> i = 1
>>> while i < 6:
... print(i)
... i += 1
...
1
2
3
4
5
break
StatementCon la sentencia break podemos detener el bucle incluso si la condición while es verdadera.
>>> i = 1
>>> while i < 6:
... print(i)
... if i == 3:
... break
... i += 1
...
1
2
3
continue
StatementCon la sentencia break podemos detener el bucle incluso si la condición while es verdadera.
>>> i = 0
>>> while i < 6:
... i += 1
... if i == 3:
... continue
... print(i)
...
1
2
4
5
6
else
StatementCon la declaración else
podemos ejecutar un bloque de código una vez cuando la condición ya no sea verdadera.
>>> i = 0
>>> while i < 6:
... i += 1
... if i == 3:
... continue
... print(i)
...
1
2
4
5
6
Un bucle for se utiliza para iterar sobre una secuencia (que puede ser una lista, una tupla, un diccionario, un conjunto o una cadena, etc).
Esto se parece menos a la palabra clave for en otros lenguajes de programación y funciona más como un método iterador como el que se encuentra en otros lenguajes de programación orientados a objetos.
Con el bucle for
podemos ejecutar un conjunto de sentencias, una vez para cada elemento de una lista, tupla, conjunto, etc.
>>> fruits = ["apple", "banana", "cherry"] >>> for x in fruits: ... print(x) ... apple banana cherry
💡 El bucle for no requiere que se establezca de antemano una variable de indexación.
Incluso los strings son objetos iterables, contienen una secuencia de caracteres:
>>> for x in "banana":
... print(x)
...
b
a
n
a
n
a
Con la declaración break
podemos detener el bucle antes de que haya recorrido todos los elementos:
>>> fruits = ["apple", "banana", "cherry"]
>>> for x in fruits:
... print(x)
... if x == "banana":
... break
...
apple
banana
Con la sentencia continue
podemos detener la iteración actual del bucle y continuar con la siguiente:
>>> fruits = ["apple", "banana", "cherry"]
>>> for x in fruits:
... if x == "banana":
... continue
... print(x)
...
apple
cherry
La función range()
devuelve una secuencia de números, comenzando desde 0 por defecto, y se incrementa de 1 (por defecto), y finaliza en un número especificado.
>>> for x in range(6):
... print(x)
...
0
1
2
3
4
5
⚠️ Ten en cuenta que range(6) no son los valores de 0 a 6, sino los valores de 0 a 5.
La función range()
tiene como valor inicial predeterminado 0, sin embargo, es posible especificar el valor inicial agregando un parámetro: range(2, 6) , que significa valores de 2 a 6 (pero sin incluir 6):
>>> for x in range(2, 6):
... print(x)
...
2
3
4
5
La función range()
tiene como valor predeterminado incrementar la secuencia en 1, sin embargo es posible especificar el valor de incremento agregando un tercer parámetro: range(2, 30, 3 ) :
>>> for x in range(2, 30, 3):
... print(x)
...
2
5
8
11
14
17
20
23
26
29
La palabra clave else
en un forbucle especifica un bloque de código que se ejecutará cuando finalice el bucle:
>>> for x in range(6):
... print(x)
... else:
... print("Finally finished!")
...
0
1
2
3
4
5
Finally finished!
Un bucle anidado es un bucle dentro de un bucle. El "bucle interno" se ejecutará una vez por cada iteración del "bucle externo":
>>> adj = ["red", "big", "tasty"]
>>> fruits = ["apple", "banana", "cherry"]
>>>
>>> for x in adj:
... for y in fruits:
... print(x, y)
...
red apple
red banana
red cherry
big apple
big banana
big cherry
tasty apple
tasty banana
tasty cherry
Los bucles for
no pueden estar vacíos, pero si por alguna razón tienes un bucle for
sin contenido, ponlo en la declaración pass
para evitar obtener un error.
>>> for x in [0, 1, 2]:
... pass
...