Páginas

sábado, 23 de enero de 2021

Mínimo común múltiplo (mcm) en Python

Esta entrada del blog pertenece a una serie:


Veamos la denominación en inglés y en español.

  • gcd = greatest common divisor = máximo común divisor = MCD
  • lcm = least common multiple = mínimo común múltiplo = mcm 


Código en repl.it

Concepto y resolución manual

El mínimo común múltiplo de dos o más números es el menor de los múltiplos comunes a todos ellos.


Ejemplo

El mcm de 12 y 22 es igual a 132. En la imagen se pueden ver los múltiplos de 12 en la columna C y los múltiplos de 22 en la columna D. En color naranja se ven los múltiplos comunes, siendo el menor de  todos ellos el número 132.

La resolución manual tiene los siguientes pasos.

  1. Descomponemos en factores primos ambos números. En nuestro ejemplo: 
    • 12 = 22 × 3 × 1
    • 22 = 2 × 11 × 1
  2. El mcm se forma con el producto de los números comunes y no comunes a la máxima potencia. En nuestro ejemplo:
    • mcm(12,22) = 22 × 3 × 11 = 132
mcm → comunes y no comunes a la máxima potencia

Usos del mínimo común múltiplo

Caso 1

Podemos calcular el menor número divisible entre dos números dados a y b. Por ejemplo, si nos piden:

Calcular el menor número que es divisible entre 12 y entre 21.

Ese número sería 132 que es el mcm de 12 y 21.

Caso 2

Dos amigos hacen la misma ruta uno cada 12 días y otro cada 22 días. ¿Cuándo coincidirán?

Siempre que tengamos casos de fenómenos periódicos con diferente frecuencia y nos pidan calcular la próxima coincidencia, estamos ante un caso de cálculo del mínimo común múltiplo.

La solución en este caso, sería el mcm de ambos números que es 132 días.

Método 1: calculando previamente el Máximo común divisor

La relación entre el MCD (Máximo común divisor) y el mínimo común múltiplo (mcm) de dos números a y b es la siguiente.
a × b = MCD(a,b) × mcm(a,b)
Calcularemos previamente el MCD usando la función math.gcd.

from math import gcd  
x=300  
y=33880  
MCD=gcd(x,y)  
mcm=int(x*y/gcd(x,y))  
print("El mínimo común múltiplo entre {} y {} es {}\n".format(x,y,mcm))  
print('''Si los dos números son a y b se puede comprobar que:\n  
\ta × b = MCD × mcm''')  
print('\t{} × {} = {} × {}'.format(x,y,MCD,mcm))  



Método 2: buscando los múltiplos comunes

Nos metemos en un bucle donde vamos dando valores a una variable instrumental t que representa el número de veces que se han de multiplicar a y b, para llegar a obtener los sucesivos múltiplos. Esos valores se van añadiendo a sendas listas y cada nueva incorporación se va comprobando si el valor obtenido se encuentra en la otra lista. Cuando se produce esa coincidencia es que hemos encontrado el mínimo común múltiplo.


def mcm(a,b):  
 multiplos_a=[]  
 multiplos_b=[]  
 for t in range(1,a*b+1):  
  multiplos_a.append(t*a)  
  multiplos_b.append(t*b)  
  if t*a in multiplos_b:  
   return t*a  
  elif t*b in multiplos_a:  
   return t*b  
 return a*b  
x=12  
y=22  
print('El mínimo común múltiplo de {} y {} es {}.'.format(x,y,mcm(x,y)))  



Método 3: mcm de varios números

Existe una propiedad matemática que nos dice que

mcm(a,b,c) = mcm(a, mcm(b,c)

Esto se puede extender, no solo a tres números a, b, c sino a cualquier cantidad de números sobre los que queramos calcular el mínimo común múltiplo, utilizando para ello la recurrencia.


jueves, 21 de enero de 2021

Números primos en Python

Esta entrada del blog pertenece a una serie:


Calculemos números primos en Python por varios métodos.

Código en repl.it

Método 1

Dado un número queremos una función que nos diga si es primo retornando True o no es primo retornando False.

#!/bin/python3  
# Detectar si un número es primo o no. Función que dice si un número es primo  
from math import sqrt  
def sera_primo(n): # n es un número mayor que 2   
 primo=True #inicialmente un número es primo hasta que no se demuestre lo contrario   
 for j in range(3,int(sqrt(n)+1),2): #probamos loa imparea hasta llegar a la raiz de n  
  if (n%j==0): #si el módulo es cero se debe a que es divisible y por tanto no es primo   
   primo=False  
   break  
 return primo  
x=199  
print('¿{} es primo? → {}'.format(x,sera_primo(x)))  

Método 2

Vamos a listar todos los primos entre 2 y n.

#!/bin/python3  
# Cálculo de los números primos desde 2 hasta uno dado  
from math import sqrt  
def primos_hasta(n):  
 lista_primos=[2] # el 2 es primo y todos los demás pares no lo son   
 for i in range(3,n+1,2): #tratamos solo los impares  
  primo=True #inicialmente un número es primo hasta que no se demuestre lo contrario   
  for j in range(3,int(sqrt(i)+1),2): #probamos hasta llegar a la raiz cuadrada de i  
   if (i%j==0): #si el módulo es cero se debe a que es divisible y por tanto no es primo   
    primo=False    
    break  
  if primo:  
   lista_primos.append(i)  
 return lista_primos  
print(primos_hasta(1000))  

Método 3

Utilizaremos el algoritmo de la criba de Eratóstenes para obtener todos los primos desde 2 hasta n.

#!/bin/python3  
# Criba de Eratóstenes  https://es.wikipedia.org/wiki/Criba_de_Eratóstenes  
def primos_hasta(n):  
 lista=[*range(2,n+1)] #el operador * desempaqueta el rango  
 i=0 #index de la lista. Es un contador  
 while i< len(lista):  
  j=i+1 #segundo contador  
  while j<len(lista):  
   if lista[j]%lista[i]==0:  
    lista.remove(lista[j])  
   j+=1  
  i+=1     
 return lista  
print(primos_hasta(1000))  

Método 4

Otra forma de obtener la lista de los números primos utilizando la criba de Eratóstenes.

#!/bin/python3  
# otro método para la Criba de Eratóstenes  
# https://es.wikipedia.org/wiki/Criba_de_Eratóstenes  
def primos_hasta(n):  
 lista=[None]*n  
 for i in range(2,n):  
  if i not in lista and lista[i]!=0:  
   lista[i]=i  
   for j in range(i*i,n,i):  
    lista[j]=0  
 primos=[x for x in lista if x!=0]  
 return primos[2:]  
print(primos_hasta(100))  

Método 5

En este caso eliminamos los múltiplos con remove.

def primos_hasta(n):  
 lista=[i for i in range(2,n+1)]  
 for i, k in enumerate(lista):  
  if i<=int(n**.5):  
   for j in lista[i+1:]:  
    if j % k == 0:  
     lista.remove(j)  
 return lista  
print(primos_hasta(200))  

Método 6

Creamos una lista con los números primos en una sola línea de código, con list comprehension.

print([x for x in range(2, 101) if all(x%y for y in range(2, min(x, 11)))])


Máximo común divisor (MCD) en Python

Esta entrada del blog pertenece a una serie:


Veamos la denominación en inglés y en español.

  • gcd = greatest common divisor = máximo común divisor = MCD
  • lcm = least common multiple = mínimo común múltiplo = mcm

Concepto y resolución manual

El máximo común divisor de dos números x e y es el mayor número capaz de dividir a ambos de forma exacta.

Los divisores de 300 y de 33.880 son los siguientes.
  • divisores(300) = 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 25, 30, 50, 60, 75, 100, 150, 300.
  • divisores(33880) = 1, 2,4, 5, 7, 8, 10, 11, 14, 20, 22, 28, 35, 40, 44, 55, 56, 70, 77, 88, 110, 121, 140, 154, 220, 242, 280, 308, ...
Como se puede comprobar, viendo todos los divisores, el número 20 es el mayor de todos los divisores comunes de ambos. Si bien, no es necesario calcular todos los divisores de ambos números, existe otro procedimiento que consiste en efectuar la descomposición en factores primos de esos números.

Descomposición en factores primos:

  • 300 = 2^2 × 3 × 5^2 × 1
  • 33880 = 2^3 × 5 × 7 × 11^2 × 1

MCD → comunes a la mínima potencia = 2^2 × 5 = 20

Usos del máximo común divisor

Algunos de los usos del MCD son:

  • Simplificar fracciones

  • Para calcular el mcm (mínimo común múltiplo)
a × b = MCD(a,b) × mcm(a,b)

Método 1: con gcd

Podemos calcular el MCD (máximo común divisor) en Python usando la librería math con:

math.gcd

Ejemplo: calcular el máximo común divisor entre 300 y 33.880


from math import gcd  
x=300  
y=33880  
print("El máximo común divisor entre {} y {} es: ".format(x,y))  
print(gcd(x,y))  


Método2: buscando los divisores comunes

Dados dos números a y b vamos a dividir entre todos los números entre 1 y el menor de ambos buscando los números que proporcionan división exacta, y dentro de ellos aquellos que son comunes a ambos. Te todos los comunes el mayor de ellos será el máximo común divisor (MCD).

#!/bin/python3  
# MCD → Máximo común divisor  
def frac(a,b):  
  return (a/b) - int(a/b)  
def mcd(a,b):  
  maximo=1  
  for i in range(1,min(a,b)+1): #dividiendo entre todos los números anteriores al mínimo de los dos números a y b  
    # si al dividir ambos a y b entre i la división es exacta indicará que ese i es un divisor común a ambos  
    if frac(a,i)<1e-9 and frac(b,i)<1e-9: #ponemos <1e-9 y no ==0 para evitar posibles errores de redondeo al dividir dos números  
      maximo=i   #buscamos el máximo común divisor de ambos  
  return maximo      
x=300  
y=33880  
print("MCD({},{}) = {}".format(x,y,mcd(x,y)))  # MCD(300,33880) = 20  

Método 3: algoritmo de Euclides



Dados dos números a y b vamos a calcular el Máximo Común Divisor utilizando el algoritmo de Euclides. Los pasos son los siguientes:
  1. Nos aseguramos que el número a sea el mayor de los dos
  2. Calculamos el resto o módulo de dividir a entre b
  3. Ahora el valor a será el antiguo b y b será el módulo anteriormente calculado
  4. Se repite el proceso desde el paso 2, hasta que se llegue a conseguir que el módulo sea cero.
  5. Cuando el módulo es cero, ya habremos conseguido el MCD que será el último valor de b obtenido en este proceso.
En la tabla anterior se puede ver el algoritmo en las columnas E y F. Las columnas G y H no son necesarias para el funcionamiento del algoritmo. En nuestro ejemplo se puede ver que el MCD entre 180 y 1032 es igual a 12.
En las columnas B y C se marcan en amarillo todos los divisores de 180 y de 1032. Los colores amarillos coinciden en 1, 2, 3, 4, 6 y 12. Luego no vuelven a coincidir. Como se pude ver 12 es el mayor de los divisores comunes a ambos números.


def MCD(a,b): # algoritmo de Euclides  
 if b>a:a,b=b,a #para que a sea el mayor  
 while a%b!=0:  
  b,a=a%b,b  
 return b  
x=180  
y=33880  
print('El MCD de {} y {} es {}.'.format(x,y,MCD(x,y)))  



martes, 19 de enero de 2021

Factorización en Python

Esta entrada del blog pertenece a una serie:


La factorización o descomposición en factores primos nos permite, dado un entero positivo, encontrar los números primos que multiplicados entre si nos den el número analizado. Por ejemplo, el número 33.880 se puede expresar como el producto de los siguientes números primos:

33880   =   2 x 2 x 2 x 5 x 7 x 11 x 11   =   23 x 5 x 7 x 112

A este proceso también se le conoce como descomposición factorial.

Descomposición factorial de un número

En Python podemos utilizar el siguiente código para conseguir descomponer números enteros positivos.

#!/bin/python3
# Descomposición en factores primos

def factoring(n): #descomposición en factores primos
  text= str(n) + ' = '
  i = 1
  for i in range(1, int(n/2)+1, 2):      # recorre los impares
    if i==1: i=2                         # salvo el 1 que será 2
    counter = 0
    while n % i == 0:
      n /= i
      counter += 1
    if counter == 1:
      text += str(i)+ ' × '
    elif counter > 1:
      text += str(i) + '^' + str (counter) + ' × '
  if text[-2] == "=":       # si no hay divisores
    text += str(n) + ' × '  # en ese caso el propio n será primo
  text += '1'
  return text

if __name__ == "__main__":
  while True:
    try:
      n = int(input('Introduzca el número a factorizar: ') or 202)
      if 1 < n <= 1e10:
        break
      else:
        print('Por favor, introduzca un número en el rango [2,10_000_000_000]')
    except ValueError:
      print('Por favor itroduzca un número entero positivo.')

  print(factoring(n))

Se basa en ir dividiendo sucesivamente primero entre 2, hasta que no sea divisible, luego entre 3 hasta que no sea divisible, y así con todos los números siguientes. Si bien, sabemos que si ya hemos dividido entre 2 todo lo posible, el número analizado no será divisible entre 4, por lo que podríamos saltar el 4. Esto es, únicamente tendríamos que dividir entre los primos menores al número analizado. Pero esto nos obligaría a ir calculando previamente los primos, por lo que optamos por dividir entre 2 y entre todos los impares menores que el número analizado.


Hemos solicitado factorizar el número 4.379.695.320 y el resultado que hemos obtenido es:

4379695320 = 2^3 × 3 × 5 × 7 × 11 × 13 × 19^2 × 101 × 1

Factorizar una serie de números

En este caso hemos adaptado el código anterior para poder aplicar la descomposición en factores primos a un rango de números.

#!/bin/python3  
# Descomposición en factores primos  
def factoring(n): #descomposición en factores primos  
  global r  
  r=1 # r es el resultado (variable global), sirve para comprobar que al final se cumple que r = n  
  text= str(n) + ' = '  
  for i in range(1,n+1,2):      # recorre los impares  
    if i==1: i=2          # salvo el 1 que será 2  
    counter = 0  
    while n%i == 0:  
      n /= i  
      r *= i           # el resultado r al final ha de coincidir con n. El valor de r se forma multiplicando los factores  
      counter+=1  
    if counter == 1:  
      text += str(i)+ ' × '  
    elif counter >1:  
      text += str(i) + '^' + str (counter) + ' × '  
  text += '1'  
  return text  
for j in range(2,20): # Descomposición en factores primos para los números comprendidos entre 2 y 19  
  text=factoring(j)  # Invocamos la función  
  print('{}  {}'.format(j==r, text))  # Si el número analizado coincide con el resultado r da True. r se obtiene multiplicando sus factores  
  if j!=r:  
    print('r = ',r)  
    break               # Si la comprobación da False se muestra el valor de r para ver el posible error.  


El valor True que figura en cada línea impresa indica que se ha pasado exitosamente la comprobación en la que el resultado r ha coincidido con el valor analizado en cada línea. El valor r se obtiene multiplicando todos los factores en los que hemos conseguido descomponer el número analizado.

Si lo desea, puede aumentar el rango para que llegue hasta 1.000 o más, y verá que, rápidamente, se llena su pantalla con todos los números sobre los que se va produciendo la descomposición en factores primos.

domingo, 17 de enero de 2021

Discos en RAID

Vamos ha montar dos discos en RAID 1. Para ello vamos ha seguir este tutorial: http://somebooks.es/crear-un-volumen-raid-1-con-dos-discos-en-ubuntu-18-04-lts/

Es un buen tutorial que explica paso por paso y de manera muy clara cómo montar todo. Una cosa que no cuentan, con la que yo me equivoqué y tardé en darme cuenta, es que los discos tienen que estar sin particiones. En la imagen de abajo vemos un disco con partición, que es como originalmente lo tenía después de formatearlo.


Ahora que tenemos el disco sin particiones, podemos empezar.

Disco 1


Disco 2

















jueves, 7 de enero de 2021

How does SSH work and how to set it up?

SSH(Secure SHell) is a internet protocol, same as HTTP or FTP.

SSH is used to remotely connect to a PC. Which means you will have a terminal window on your host computer that acts as a terminal in the geest computer. Very useful for controlling a server through the internet. All data passed between them are encrypted. It's default port is 22.

Now that we know a bot of what we can do with SSH let's learn how to use it. 

For linux based systems

If your system has a linux based terminal like Terminal in Linux and MacOS or WSL/Git Bash in Windows you can do SSH directly from your terminal, just type:

 ssh user@IPaddress  
Replace "user" with the user you would like to use, like root, or pi if your connecting to a Raspberry Pi.
Keep the @ and replace "IPaddress" with the IP address of the machine you want to connect to.
Now the default port for SSH is 22 but it can be changed to a different port, if this is the case, just type a colon at the end of the last command and the port number you want to use.

In Windows with no linux terminals

If your using a Windows machine and don't have any linux terminals, well you should, see how to activate WSL(Windows Subsystem for Linux) here.
But if you insist, a simple program for Windows called Putty should do the trick.
Just install it from its web page: www.putty.org

Once installed and opened you'll find this UI:
As you could probably imagine, to use it you just type the IP address were it says Host Name and you can even change the port. By default SSH uses port 22, unless the machine your connecting to has set a different port for SSH connection just keep as default. 

After that a terminal window will appear it will ask for user password...etc. And your finished. You can connect to another computer using SSH.

Installation video for all systems

Here I'll leave a video explaining how to install SSH. 
I explain how to do it with the two methods I showed in this post, works for all operating systems.

Programación Orientada a Objetos (POO)

En Python disponemos de varios paradigmas de programación. Inicialmente hemos visto programación imperativa, concretamente programación estructurada o procedimental o procedural que permite crear algoritmos que se ejecutan secuencialmente de arriba hacia abajo. Cuando el proyecto que deseamos programar se hace muy complejo y de gran tamaño el paradigma procedimental puede llegar a crear un código difícil de seguir y poco intuitivo.

La Object-oriented programming (OOP) o programación orientada a objetos (POO) surgió con la intención de tratar las estructuras de forma similar a como tratamos los objetos en la realidad para conseguir que el código sea más intuitivo.

Veamos un ejemplo de objeto en la vida real. Veamos el objeto coche.

Atributos: características que definen el objeto.

Un coche tiene una serie de atributos o propiedades como son:

  • color
  • número de asientos
  • potencia
  • velocidad máxima
  • consumo
  • peso
  • Km de autonomía
  • capacidad del maletero
  • etc

Métodos: acciones que puede realizar el objeto.

Un coche tiene una serie de métodos o funciones que puede realizar, como por ejemplo:

  • Acelerar
  • Frenar
  • Repostar o cargar batería
  • aparcar
  • abrir maletero
  • girar
  • encender luces
  • poner música
  • etc

También tenemos objetos de objetos. Así, el automóvil tiene un motor que a su vez es un objeto con sus propios tributos y métodos. El motor tiene atributos como la potencia, el consumo, el par-motor, la temperatura máxima, etc. El motor tiene métodos o funciones que puede realizar como encender, apagar, acelerar, etc. Es bastante habitual ver objetos, dentro de objetos, y a su ver estos dentro de otros objetos.

En programación para crear los objetos utilizamos clases. Si el objeto es una galleta la clase sería el molde que utilizamos para crear las galletas. Ese molde tiene una serie de propiedades o atributos y luego una galleta concreta puede disponer de un valor concreto de ese atributo. Por ejemplo, la clase puede definir el color y la forma de la galleta y luego una galleta concreta, que sería el objeto, puede tener un color amarillo, y una forma cuadrada.

En el campo de la programación:

  • La clase se define el Python como class
  • Los atributos son variables. Diferentes objetos creados con la misma clase pueden tener diferentes valores para un mismo atributo. Por ejemplo, el objeto galletaMaria puede tener el atributo calorías con un valor diferente de la galletaIntegral.
  • Los métodos son funciones que en Python se definen con def como cualquier otra función pero que dentro del ámbito de una clase se denomina método. Los métodos, por ser funciones, pueden recibir parámetros y pueden devolver un valor.

El estado de un objeto es el conjunto de valores o atributos que definen ese objeto y que pueden ser diferentes de otro objeto creado con la misma clase. Los objetos creados con una misma clase pueden tener los mismos atributos y métodos pero pueden tener diferentes estados.

Cuando aplicamos una clase para crear un objeto decimos que estamos instanciando una clase para crear un objeto o instancia de clase. De esta forma, una instancia es un objeto e instanciar un objeto es crear un objeto aplicando una clase. Estos objetos se guardan en la memoria conteniendo información sobre los atributos y métodos que poseen.

Python ya dispone de clases creadas a priori y que incluye y están listas para usar, por ejemplo los tipos de datos int o float, y dispone de funciones internas para estos tipos de datos como por ejemplo abs(). En otros casos, el programador puede crear sus propias clases que le permitirá instanciar objetos, por ejemplo, podemos crear facturas, informes, ventanas, puntos de venta, etc.

Veamos como crear en Python la clase galleta. Para ello se usa la palabra clave class y el nombre se acostumbra a ponerlo en mayúsculas y en singular.

 class Galleta:  
   pass  
   
 una_galleta=Galleta()  

Algunos recursos para aprender sobre POO:

miércoles, 6 de enero de 2021

Operaciones aritméticas en Python

En Python podemos hacer las siguientes operaciones aritméticas.

+ suma

– resta

* producto (multiplicación)

/ división

** elevar (exponenciación)

// división entera (cociente de una división)

% resto (módulo)

Si estamos trabajando sobre el interprete de Python, sobre el Shell, después del prompt  >>>  no será necesario poner print pero si estamos trabajando en un archivo .py será necesario poner print para ver el resultado de nuestras operaciones aritméticas.

También se conoce como REPL (Read, Evaluate, Print, Loop), donde lee el comando, evalúa el comando, imprime el resultado y lo repite para leer el comando nuevamente.

Strings en Pyhton

Un string es una cadena o cadena alfanumérica. Es un texto que se escribe entre comillas que puede contener caracteres del cualquier tipo, incluso únicamente numéricos.

Veamos algunos ejemplos de cadenas:


"hola"

"Trimestre4"

"Vuelo 555"

"120A"

"Q-720"

"23.15 €"

"123"

El último valor si va entrecomillado es un string y no un número.

Se pueden usar las dobles comillas o las comillas simples, por ejemplo ‘hola’. Lo que no podemos hacer es mezclar ambos tipos de comillas al inicio y al final de la cadena.

Para hacer un comentario del programador en Python se usa el símbolo #. Todo lo que se escriba después de escribir ese símbolo en una línea que no se tendrá en cuenta en la ejecución y sirve como documentación y aclaración que hace el programador para si mismo o para otros que lean este código en el futuro.


>>> "hola" #sin usar print en el IDLE

'hola'

"hola" + "mundo"

"hi " * 3

string1 = "hola"

string2 = "mundo"

string3 = string1 + string2

print(string3)

print("hola"+" "+"mundo")

#"Vuelo "+505 #error

"Vuelo "+ str(505)

2+8==10 #True

123=='123' #False


En el IDLE de Python el prompt son tres símbolos de mayor que (>>>). Si escribimos una cadena alfanumérica entrecomillada al pulsar Enter nos responderá con esa misma cadena entre comillas simples.


Podemos concatenar (unir) dos strings usando el signo más.


Si queremos que se repita un string podemos multiplicarle por un número que indica el número de repeticiones.


Vamos a crear un par de variables que contendrán un string cada una y luego crearemos una tercera variable que es la suma de las dos anteriores. En este caso lo que sucederá es que la tercera variable será el resultado de concatenar las dos anteriores.


Si intentamos concatenar un string con un número nos dará error. Para evitar el error debemos convertir el número en un string usando la función str().


En Python podemos preguntar si dos expresiones son iguales usando el doble símbolo de igualdad (==). Si son iguales responderá True y si no lo son responderá False.


Podemos comprobar que el número entero 123 no es igual a la cadena alfanumérica ‘123’ y Python nos responde con False.

Instalación de Python en Linux

 Es posible que tu distribución de Linux ya venga con una versión de Python instalada. Nos interesa tener Python 3 o posterior, la antigua versión Python 2 no nos interesa ya que no es totalmente compatible con las versiones posteriores.


Para comprobar que versión de Python 3 tienes instalada puedes teclear en la terminal:


python3 --version


En nuestro caso tenemos instalada la versión 3.8.2 de Python que viene por defecto en Ubuntu 20.04 o en Linux Mint 20 Cinnamon que es nuestra distribución actualmente.


Instalación de pip

Necesitamos instalar el gestor de paquetes pip. El comando pip luego se usará con bastante frecuencia y nos permitirá instalar los paquetes de Python que necesitemos. Para su instalación introducimos la siguiente línea por consola.

sudo apt install python3-pip


Veamos la versión de pip instalada:

pip3 --version

Instalación de Python en Windows

Cuando aprendemos un nuevo lenguaje de programación es habitual comenzar creando un primer programa denominado Hola mundo que permite imprimir la frase “Hola mundo”. Esto nos indicará que se encuentra correctamente instalado y que es capaz de ejecutarse sin errores.

En Python este programa se crea con esta línea de código.

print("¡Hola mundo!")

Al ejecutarla lo que veremos en pantalla es la frase:

¡Hola mundo!

Veamos cómo ejecutar este código usando el IDEL, que es el IDE (entorno de desarrollo) que viene por defecto en Python.

En Windows usando el IDLE

Al instalar Python en Windows también se instala un pequeño editor de texto y una pequeña terminal para ejecutar el código Python.
En el buscador de Windows (la lupa) tecleamos la palabra Python y si ya lo tenemos instalado nos mostrará la aplicación para ejecutarlo.

Seleccionaremos la versión de Python con la que deseemos trabajar, posiblemente la más actual que tengamos instalada. En nuestro caso, en este momento tenemos la versión 3.9.

Al pulsar sobre la aplicación de Python obtendremos una ventana como la siguiente, que es la consola interactiva de Python.


Si después del prompt (>>>) escribes:

print("Hola mundo")

y pulsas Enter verás en pantalla esta frase.

Para salir de esta ventana del Shell puedes escribir


exit()

y pulsar Enter. Se ponen los paréntesis, ya que exit es una función a la que estamos llamando (invocando).

Al teclear nuestra línea de código veremos que al pulsar Enter se ejecuta, mostrando en pantalla la frase: Hola mundo

Observamos que el prompt en esta terminal son tres símbolos del tipo mayor que: >>>

Esto nos indica que podremos escribir nuestro código después de ellos. Por ejemplo, podemos sumar dos números y actuará como una calculadora.


Podremos salir de esta ventana tecleando exit().

Instalación de Python

Podemos trabajar en

  • Windows
  • Linux (en la mayoría de distribuciones ya viene instalado)
  • MAC

La página oficial de Python es https://www.python.org y en ella podremos encontrar la sección de downloads con la última versión descargable. Actualmente estamos en la versión 3.9.1 siendo lo adecuado instalar la última disponible.

En el caso de Windows 10 disponemos de dos posibilidades para trabajar con Python:

  • Trabajar con el propio Windows
  • Instalar en Windows 10 el WSL2 (Windows Subsintem for Linux versión 2) y de esta forma podremos disfrutar de una distribución de Linux, por ejemplo Ubuntu, embebida en nuestro Windows.

Esta segunda opción es muy recomendable en caso de trabajar con Windows 10. Para su instalación lo aconsejable es seguir los pasos que recomienda la propia Microsoft en este enlace: WSL2.

¿Qué es Python?

 Python es un lenguaje de programación:

  • sencillo → recomendado para aprender a programar
  • muy utilizado → es uno de los lenguajes más utilizados y preferidos por los programadores
  • especializado → es líder en campos como big data y machine learning
  • software libre → tiene licencia de código abierto
  • multiplataforma → está disponible para Windows, Mac y Linux
  • multipropósito → se usa para cálculo científico, web y muchas otras aplicaciones
Puedes escuchar la pronunciación en inglés:


  • Lenguaje de programación multiplataforma, de alto nivel
  • Sintaxis legible → Sencillo de aprender
  • Comunidad, open-source
  • Multiparadigma: imperativa, estructural, POO, funcional
  • Tipado dinámico, interpretado
  • Simple, rápido, elegante, flexible, ordenado
  • Big data, data science, IA, ciencia, web, …
  • Guido Van Rossum, 90s, Monty Python
  • Frameworks: Django, Flask
  • Jupyter, Pandas, NumPy, Matplotlib
  • Raspberry Pi, IoT
Página principal del proyecto: https://www.python.org