En nuestros ejemplos básicos para aprender a programar en Python hemos visto ya cómo utilizar bucles para poder listar los números del 1 al 10, en este caso vamos a ver cómo podemos listar los 10 primeros números impares en Python.
Uso de bucles para listar números
Lo primero para poder listar los 10 primeros números impares en Python es conocer el manejo de los bucles en Python. En concreto vamos a ver cómo se maneja el bucle for
. El bucle en for
en Python tiene la siguiente estructura:
for variable in secuencia: # Código a ejecutar
Para conseguir la secuencia nos apoyamos en la clase range()
de Python que nos permite generar una secuencia de números.
Así, revisando la sintaxis de la clase range()
vemos que nos permite listar los números.
class range(stop) class range(start, stop[, step])
Por lo que podemos sacar todos los números con una secuencia generada por range()
de la siguiente forma:
for numero in range(1,11): print (numero)
En concreto hemos sacado 10 números ya que la clase range()
genera la secuencia desde el número de el valor de start
hasta el valor del número de stop
-1.
Pero, esto, nos genera una lista de números consecutivos, es decir, nos muestra tanto los pares como los impares.
Así que si queremos listar los 10 primeros números impares en Python tendremos que comprobar que el número, antes de imprimirlo por consola mediante print()
, sea un número impar. Para poder comprobar que el número es impar deberemos de validar que el resto de la división por 2 es diferente a 0. El resto se puede calcular mediante el operador %
.
Por lo tanto el código de uso del bucle for
, mas la clase range()
y la validación del resto mediante el operador %
quedará de la siguiente forma:
for numero in range(1,21): if numero % 2 != 0: print(numero)
Clase range con step
Además del código calculando el número impar mediante el resto de una operación de división por dos, vamos a ver que podemos listar los 10 primeros números impares en Python utilizando solo la clase range()
.
Mirando un poco más en detalle los parámetros de la sintaxis de range()
vemos que hay uno que es step
. Este parámetro nos permite el generar una lista de números con valores de separación entre ellos.
class range(stop) class range(start, stop[, step])
Es decir, que si generamos un rango de números del 1 al 11, con un salto de 2, tal y como conseguiríamos con este código:
range(1,11,2)
Veremos que nos genera los números en saltos de dos en 2.
# 1, 3, 5, 7, 9
Si cambiamos el parámetro step
y ponemos un valor de 3.
range(1,11,2)
Veremos que los números están separados de 3 en 3.
# 1, 4, 7, 10
Código para los 10 primeros números impares en Python
Así que podemos utilizar la clase range()
con el parámetro step
para poder listar los 10 primeros números impares en Python.
Para ello, como queremos sacar los 10 primeros números, tendremos que utilizar un rango de 1 al 20 y como solo necesitamos los números impares, le añadimos el salto de 2 en 2.
range(1,21,2)
Por lo tanto el código definitivo para poder listar los 10 primeros números impares en Python será el siguiente:
for numero in range(1,21,2): print(numero)
Lo que nos mostrará por consola la siguiente secuencia:
#1, 3, 5, 7, 9, 11, 13, 15, 17, 19
Y ya tendremos por completo nuestro ejemplo para poder listar los 10 primeros números impares en Python. ¿Qué otros casos de uso se te ocurren en los que tengas que utilizar el parámetro step de la clase range()?