Buscar
alojamiento wordpress

 

alojamiento digital ocean

¿Usas el cloud? Consigue $100 gratis para 2 meses en Digital Ocean

Colabora con nosotros

Deja un comentario o comparte el artículo que más te guste

Contacta con nosotros para disponer de más información.

Programar en Python

 

programar en python

 

En este artículo te mostramos como programar en Python.

Python es un lenguaje fácil y rápido de aprender. Actualmente existen muchas librerias que permiten hacer prácticamente de todo.
Python es un lenguaje interpretado y tiene su línea de comandos como en un intérprete. Es fácil de leer el código y existen versiones para la mayoría de sistemas operativos, incluso para la Raspberry PI.

Actualmente se usa bastante en inteligencia artificial, por lo que es interesante aprender a programar en python.

Una característica frente a otros lenguajes es que Python no usa las llaves { } para agrupar el código, sino que usa la identación, por ejemplo en los bucles for y en los if.

 

Variables

Las variables en Python se crean con el nombre de la variable = valor.
No llevan espacios , ni dígitos, ni carácteres especiales.
Se recomienda usar minúsculas y el guión bajo para separar las palabras que denominan una variable.

Python tiene dos tipos de números; enteros y decimales (int y float) y también usa los boolean como True o False.

Entre las librerías disponibles, cabe destacar la math que es para realizar cálculos matemáticos.
Para usarla hay que importarla con: import math
math.ceil (8.3)
la division entera se hace con dos //
y da un entero.

Para definir cadenas de texto se pone la variable y el valor entre comillas simples o dobles. Para concatenar cadenas: x+b+' '+d

Los scripts en Python se suelen denominar con la extension py.

 

Imprimir y leer por consola

Para mostrar por consola los valores de una variable se usa la funcion print().
Acepta varias variables, sólo hay que separarlas por comas para imprimirlas.
Se puede definir un separador para imprimir las variables. Por defecto es un espacio en blanco, pero se podria poner:
print(a,b,c,sep='-')


Aunque lo suyo es utilizar la función format para formatear textos a la hora de imprimir:
format(variable, '1d')

Para recoger variables en la entrada por consola se usa la función input()
a = input("Introduce un valor")

Para convertir la varaible 'a' a un número se usa int(a)

Los comentarios se ponen con la almohadilla #


A la hora de imprimir números, para pasarlos a cadena de texto hay que poner str(variable numérica).

Aunque si los ponemos directamente en la sentencia print(b,n) se imprimiran como texto.

También se usan los retornos de carro y los tabuladores \n y \t habituales en las cadenas de texto.

Podemos limpiar de una cadena de texto los carácteres en blanco, y eso incluye saltos de línea, con la función cadena.strip()

Otra función muy útil es split(token) para partir una cadena de texto en varias subcadenas usando un token.

De las cadenas de texto podemos sacar los carácteres como si fuera un array del tipo cadena[2], etc
Para sacar la longitud de la cadena de texto usamos len(cadena).

Hay una funcionalidad de las cadenas de texto que es el slice, se puede definir el array que empieze
en una posicion y acaba en la posición +1, para hacer subcadenas o poner solo el final, o solo el principio:
cadena[2:4]   cadena [:2]   cadena [4:]

En Python hay 6 tipos de operadores de comparacion:
<, =<, >, =>,  !=, ==

El bucle no lleva paréntesis y se indenta así:
if x_3 :
    print x
elif:
    print g
else:
    print t

la convención habitual es usar 4 espacios para indentar el código.

Aceptan también or y and en los if.

 

Listas

Se pueden crear listas de tipo mezclados:
lista = [ 2, 'cadena', 3.4 ]

del mismo modo podemos sacar slices como en las cadenas de texto.

Se puede crear la lista vacía e ir creando elementos con lista.append(elem)

Para eliminar elementos se puede hacer lista.remove(elem) o del lista[2]

Incluso borrar un slice con del lista[:2]

Las listas se pueden comparar con un if, pero han de tener los mismos elementos y en el mismo orden
para ser iguales.

Se pueden crear listas de listas, o sea arrays bidimensionales  lista[0][1]


Diccionarios


Para definirlos se ponen los valores entre llaves y dos puntos separados por comas:

dic = {"clave":"valor", "clave":"valor" }


y obtenemos el valor de una variable con dic['nombre']

La clave puede ser un número incluso.

Podemos crear un diccionario vacío con dic = {}
y anadir elementos con dic['clave'] = valor

Para eliminar un elemento se usa: del dic['clave']

Para obtener un elemento y no provocar un error podemos usar la sentencia get:
dic.get(clave)

se retorna None que es un valor especial que equivale a "nada".

Se puede usar en ifs para ver si una variable tiene valor

result = song.get('author')
if result:
    print (lala)
else:
    print ("no existe")

Los diccionarios se pueden comparar entre si, pero han de tener los mismos elementos, no hace falta que
tengan el mismo orden.

Se pueden crear diccionarios de listas, donde la clave da acceso a listas de elementos.

 

Bucles


La sentencia para los bucles es:

for elemento in elementos:
    haz algo

range(n) crea una lsita de n elementos de 0 a n-1
range(inicio, fin, salto)

Para recorrer los elementos de un diccionario se usa .items:

for item in dic.items():

tambien existe la sentenncia while:

while condicion:
    statment

con la sentencia break se puede salir del bucle y con la sentencia continue se puede volver al inicio del bucle desde el punto en que se encuentra.


Random


El paquete random ofrece funciones con números aleatorios.
random.random() da un valor aleatorio de 0 a 1

random.choice([1,2,3]) da un valor de la lista aleatorio

random.randint(10,20) da un valor aleatorio del rango


Funciones

En Python se pueden definir funciones.
Se empieza por la sentencia def

def nombre(params):
    return valor


Una recomendacion habitual es codificar la ejecucion principal en una función main
y luego llamarla dentro del programa:

def main():
    instrucciones

main()

justo antes de la llamada del main se pueden definir variables globales. También se pueden definir variables locales, dentro de cada función.

 


Ficheros


Con Python el acceso a ficheros es muy sencillo de implementar.
fichero = open('nombre.txt','r')    w,para escritura r,para lectura a, para añadir
Luego para leer del fichero:
contenido = fichero.read()

lee todo el contenido del fichero en la variable contenido.

Por el contrario si queremos leer lineas del fichero habria que hacer:


contenidolinea = fichero.readline()


Para escribir en el fichero:


fichero.write('linea 1\n');

y por último cerramos el dfichero:


fichero.close()

si el fichero no existe, se creará nuevo.

 


Excepciones

 

Python tiene un mecanismo de excepciones (similar a java salvando las distancias) con las sentencias try y except

try:
    bloque
except tipoError as mierror:
    print (mierror)

Se usa para controlar los errores, por ejemplo cuando un fichero no existe, un elemento no existe en una lista, convertir una cadena a un entero, etc...


Módulos

Python permite el uso de módulos que especifican funciones a modo de libreria. De este modo podemos importar estos módulos y usarlos en
nuestro programa de Python. Se usa la sentencia import.
Para instalar modules se usa el comando pip install nombremodulo

También podemos crear nuestros propios módulos y si estan en el mismo directorio podemos importarlos en nuestro programa principal.
Es importante poner el nombre del modulo.funcion antes de hacer las llamadas, ya que sino no encontrará las funciones y nos dara un error.

 

Ejemplo práctico en Python


Para poner un ejemplo de Python vamos a desarrollar un programa sencillo que acceda a una url, y analice el contenido de la página en busca de enlaces.

Para ello vamos a usar dos librerías muy comunes que facilitan el trabajo. Una es requests que incorpora funcionalidades para realizar peticiones web y la otra es Beautifulsoup que permite parsear y analizar el contenido de una página web de modo muy fácil y rápido.

 Usamos también sys para obtener el primer argumento al ejecutar el programa. De ese modo para ejecutarlo sería:

python test.py https://www.ejemplo.com

 Las cabeceras son optativas, algunos sitios web no permiten obtener la página sino se trata de un navegador reconocido.

Lo demás es sencillo, se hace la llamada, y se guarda en la variable html, a partir de ella se obtienen los enlaces 'a' y con un bucle for se imprime por consola:

 

 

import requests

import sys

from bs4 import BeautifulSoup

 

 headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}

 url = sys.argv[1]

 req = requests.get(url, headers=headers)

 print url

 html = BeautifulSoup(req.text, "html.parser")

 anchors = html.find_all('a')

 for link in anchors:

     href = link.get('href')

         if href != None:

                 print href