Introducción a Python

Esta es una introducción que fue originalmente un trabajo de clase por lo que es extenso. Los temas tocados son las bases del lenguaje, a pesar de lo largo que parezca es bastante sencillo siendo, al final existen las estructura de datos y control que seria lo más complejo tocado aquí.

¿Qué es?

Python es un lenguaje de programación interpretado cuya filosofía hace hincapié en la legibilidad de su código. Se trata de un lenguaje de programación multiparadigma, ya que soporta orientación a objetos, programación imperativa y, en menor medida, programación funcional.

Se trata de un lenguaje fácil en el que iniciarse pero poderoso y con mucho potencial.

Sus usos en un ámbito más profesional son:

-Inteligencia artificial.

-Big data.

-Data science.

-Testing framework.

-Desarrollo web.

Tipos de datos

Los tipos de datos compuestos estándar se pueden clasificar como los dos siguientes:

  • Mutable o variable: su contenido (o dicho valor) puede cambiarse en tiempo de ejecución.
  • Inmutable o constante: su contenido (o dicho valor) no puede cambiarse en tiempo de ejecución.

En Python los datos pueden ser constantes o variables:

Las variables una vez declaradas Python las reconoce y trata  como objetos, pero para empezar, ¿Qué es una derivada?. Una derivada es un tipo de dato que se declara al principio del programa y se almacenan en la memoria del ordenador durante la ejecución del programa, y existen muchos tipos. Una variable se declara de la siguiente manera:

magic = 14

saludo = “hola”

Tipos de variables

nombre¿Qué es?¿como se ve?¿Cómo se declara?Para qué sirven
int número entero14Se pone el número soloDeclaran una variable numérica para operar con ella más adelante. Funcionan igual a excepción de si es  decimal o no.
floatnúmero decimal14.5Se pone el número con un punto y los decimales (14.0 o 14.1) 
booleanverdadero/ falsoTrue / False Se escribe =True/FalseAsignan un valor verdadero o falso.
stringcadenas de caracteres“Hola mundo”Se escribe entre “”Declara una variable con caracteres (letras o números)
tuplamatriz(4,5.6,[4,8], “roberto”)Se escribe entre()Declara y almacena un conjunto de datos que no cambian.
listlista[“rojo”, “azul”, “violeta”]Se escribe entre []Declara y almacena  un conjunto de datos y puede editarse más tarde.

Constantes

En python, no tenemos ninguna palabra reservada que nos permita crear una constante haciendo que esta no se pueda modificar durante el transcurso del programa.

Tenemos dos maneras de solucionarlo.

La primera sería usar variables como ya vimos, pero simplemente escribimos el nombre en mayúsculas para dar a entender que esa variable no debe cambiar.

Operadores

Operadores Arítmeticos

El operador + suma los valores de tipo de datos numéricos.

>>> 3 + 2

5

El operador – resta los valores de tipo de datos numéricos.

>>> 4 – 7

-3

El operador – asigna un valor negativo a un tipo de datos numéricos.

>>> -7

-7

El operador * multiplica los valores de tipo de datos numéricos.

>>> 2 * 6

12

El operador ** calcula el exponente entre valores de tipo de datos numéricos.

>>> 2 ** 6

64

El operador división el resultado que se devuelve es un número real.

>>> 3.5 / 2

1.75

El operador división entera el resultado que se devuelve es solo la parte entera.

>>> 3.5 // 22

1.0

El operador módulo no hace otra cosa que devolver el resto de la división entre los dos operandos. En el ejemplo, 7 / 2 sería 3, con 1 de resto, luego el módulo es 1.

>>> 7 % 2

1

El orden de precedencia de ejecución de los operadores aritméticos es:

  1. Exponente: **
  2. Negación: –
  3. Multiplicación, División, División entera, Módulo: *, /, //, %
  4. Suma, Resta: +, –

Los operadores se pueden resumir cuando se trate de variables indicando la operación antes del igual , operando el de la izquierda al de la derecha

Operadores de comparación

Los operadores de comparación se usan para evaluar expresiones que solo pueden tener 2 resultados, estos resultados son verdadero o falso (true o false) y son los siguientes.

  • == , evalúa como verdadero si 2 variables son iguales
  • != ,evalúa como verdadero si 2 variables son diferentes
  • <> , lo mismo que !=
  • > , verdadero si el operador a la izquierda es mayor que el de la derecha
  • < , verdadero si el operador a la izquierda es menor que el de la derecha
  • >= verdadero si el operador a la izquierda es mayor o igual al de la derecha
  • <= verdadero si el operador a la izquierda es menor o igual al de la derecha

Operadores lógicos

Hay siguientes operadores lógicos soportados por el lenguaje Python. 

and Lógico : Si ambos operandos son verdaderos, entonces la condición se vuelve verdadera.

por lógico: Si alguno de los dos operandos es distinto de cero, la condición se cumple

not lógico: Se utiliza para revertir el estado lógico de su operando.

Expresiones

El lenguaje python tiene unas características de escritura que lo hacen más sencilla. En comparación con C python tiene las siguientes características. Al final de las sentencias no hace falta poner “;”, diferencia entre mayusculas y minusculas, eso significa que “HolaMundo” y “holamundo” no son la misma variable para python. También se usa el tabulador en lugar de “{}” para asignar código dentro de condicionales,clases y funciones. Los comentarios se empiezan con con “#” en lugar de “//”. Existen más tecnicismos en la escritura del código pero estas son las principales y las necesarias para empezar.

Estructuras de control

Estructuras condicional

La estructuras condicionales en python se hacen con 3 palabras principalmente, “if”,”elif”, “else” que realizan una condición que puede dar como resultado un boolean (True/False), es decir si se cumple o no la condición. 

Las instrucciones que debe realizar el programa en caso de que la condición sea cierta se introducen dentro del if  con una sangría. Da igual cuántas siempre que haya como mínimo una y todas las líneas dentro del if tengan las mismas

Un condicional simple solo lleva un “if” que es la base, pero usualmente hay más condiciones o otro grupo de instrucciones que hacer si la condición falsa. Estas se introducen con la palabra “else”.

El else no lleva condición entonces si queremos poner más condiciones con la palabra “elif” después del primer “if”. El programa irá comprobando primero el “if” y después los “elif”  por el orden que aparezcan y por último ejecuta las instrucciones del “else”

Nombre= str(input(“Introduzca su nombre”))

if  Nombre = “Adrián”

print(“Bienvenido señor”)

elif Nombre = “Vadim” 

print (“VADIM BLYAT”)

else

print(“ESTE NO ES TU ORDENADOR INTRUSO”)

Para una mayor complejidad en el programa se pueden introducir condicionales dentro del otro añadiendo sangrías extras a las instrucciones que vayan en el 2 condicional. Tomando el anterior ejemplo:

Nombre= str(input(“Introduzca su nombre”))

if  Nombre = “Adrián”

print(“Bienvenido señor”)

entrada = int(input(“Introduzca la contraseña ”))

if entrada = 6942014

print (“Acceso concedido”)

else 

print(“Acceso denegado”)

elif Nombre = “Vadim” 

print (“VADIM BLYAT”)

else

print(“ESTE NO ES TU ORDENADOR INTRUSO”)

Como condición se  pone una operación lógica normalmente, un igual. Aunque también se puede usar los signos de  comparación.

 Estructuras iterativas.

Las estructuras iterativas o cíclicas, son estructuras de control que a diferencia de las condicionales. Hacen un bucle hasta que se cumpla una condición o esta se deje de cumplir.

Para escribir la sintaxis son parecidas pues con las sangrías introduces el código dentro de estas estructuras al igual que con los condicionales. 

Se pueden introducir condicionales dentro de los bucles y viceversa. Además tenemos dos palabras claves nuevas “break” y “continue”

Break: rompe el bucle terminándolo

Continue: Salta el bucle actual, pero no lo termina sino solo salta el siguiente 

Existen múltiples estructuras de control:

While

Este bucle, se encarga de ejecutar una misma acción «mientras que» una determinada condición se cumpla.

En el ejemplo usaremos el while para que el ordenador cuente hasta 100:

a = 0

while a<=100

a+1= a

if a = 100

break

print(a)

for

El bucle for, en Python, es aquel que nos permitirá iterar sobre una variable compleja, del tipo lista o tupla:

#Por cada nombre en milista, imprimir nombre

milista = [‘Juan’, ‘Antonio’, ‘Pedro’, ‘Herminio’] 

for nombre in milista: 

    print nombre

La variable es declarada en tiempo de ejecución (es decir, se declara dinámicamente durante el bucle), asumiendo como valor, el de cada elemento de la lista (o tupla) en cada iteración.

Otra forma de iterar con el bucle for, puede emular a while:

año = 2019

for año in range (2019,2050)

print (“Ha sido un año de puta madre”)

Estructuras de datos

En Python existen varios tipos de estructuras de datos que son  declaradas como variables y ya han sido mencionadas (Tuplas y listas ). Ahora profundizaremos más y veremos más tipos

Listas o Arrays

Las listas o arrays en python son estructuras de datos muy flexibles en las que podemos mezclar valores de varios tipos, o bien que sean de un solo tipo.

 Existen varias funciones y operaciones que se pueden hacer a las listas.

list.append y list.extend

Las dos operaciones básicas en las listas son las de append y extend. La diferencia entre estas dos operaciones es que append agrega un elemento al final de la lista, mientras que extend es capaz de agregar otra lista al final de la lista. 

list.insert(i, x)

Inserta un ítem en una posición dada. El primer argumento es el índice del ítem delante del cual se insertará, por lo tanto a.insert(0, x) inserta al principio de la lista, y a.insert(len(a), x) equivale a a.append(x).

list.index(x[, start[, end]])

Nos devuelve la posición en la lista del elemento indicado

list.pop

Pop devuelve el último elemento de la lista y posteriormente lo remueve de la misma

list.clear(b)

Elimina todos los elementos de la lista equivalentes a “b”

list.count(x)

Devuelve el número de veces que x aparece en la lista.

list.sort(key=None, reverse=False)

Ordena los ítems de la lista in situ (los argumentos pueden ser usados para personalizar el orden de la lista, ve sorted() para su explicación).

list.reverse()

Invierte los elementos de la lista in situ.

list.copy()

Devuelve una copia superficial de la lista.

Usos de las listas

Las listas son usadas como bases de datos donde el programa guarda un número de variables dentro de esta. Por lo tanto las listas suelen ser usadas como pilas o colas. 

En las pilas se guarda un dato pero sin embargo el último elemento en  entrar es el 1 en salir. En las colas el 1 en entrar es el 1 en salir.

Tuplas

Las tuplas son como las listas, excepto que en este caso son inmutables. Una tupla consiste de varios valores separados por comas.

Por lo tanto no se pueden realizar la mayoría de operaciones que se pueden realizar en las listas

Set

Los sets en python son listas sin un orden específico pero cuyos elementos son únicos, es decir, no existe la repetición. Y para definir uno hay que explícitamente indicar que queremos que la lista sea un set con la función con el mismo nombre. Se usan llaves para definir los sets.Podemos agregar nuevos elementos con la función add, igual que en las listas, podemos revisar si hay un elemento en el set usando la función in. 

String 

Una de las cosas curiosas sobre python, es que en muchas maneras podemos manipular strings de la misma manera como se manipulan las listas. Esto convierte a los strings en una especie de estructura de datos conveniente de usar.

Podemos usar len y encontrar partes o segmentos del string según nos parezca conveniente en un string. Asi mismo podemos usar el operador in para buscar en la cadena. Hay varios métodos muy útiles cuando se trata de manipular cadenas como split() el cual parte la cadena en un arreglo según el carácter que indiquemos, o según los espacios en blanco si no especificamos ninguno.

Si quisiéramos volver a unir los elementos del arreglo en un string podemos hacer uso del método joint. El método strip, remueve el carácter o la secuencia de caracteres de la cadena según se lo indiquemos.

Diccionario

Un diccionario en python actúa de manera similar a una lista, excepto que el índice de este no necesariamente tiene que ser un número entero, y se asemejan bastante a un objeto

Para borrar un elemento de un diccionario, utilizamos el comando del.El método keys devuelve todas las llaves en el diccionario. El método value devuelve todos los valores dentro del diccionario, y el método items devuelve todos los pares llave-valor dentro del diccionario en cuestión.Podemos iterar fácilmente en un diccionario utilizando la notación for…in.Podemos igual que en todas las estructuras anteriores, buscar dentro de un diccionario con la palabra in.Así mismo podemos obtener un item de la lista específicamente con el método get, y definir que regresar en caso el item no exista dentro del diccionario.

Numpy

Python tiene listas, enteros, punto flotante, etc. Para cálculo numérico necesitamos más… allí aparece Numpy.

Numpy es un paquete que provee a Python con arreglos multidimensionales de alta eficiencia y diseñados para cálculo científico.

  • Un array puede contener:
    • tiempos discretos de un experimento o simulación.
    • señales grabadas por un instrumento de medida.
    • pixeles de una imagen, etc.

Porque NumPy no está especializado en análisis de datos, pero su conocimiento es casi imprescindible porque es una librería ampliamente usada por otras que sí están más centradas en análisis de datos, como pandas, y aquí es vital el conocimiento de ndarray y los objetos array incluidos en dicha librería, pues permite acelerar el cálculo básico entre matrices y vectores.

ndarray es un objeto multidimensional que contiene datos homogéneos.

Toda matriz tiene un tamaño, y un tipo (shape and dtype).

Quizás, una de las cosas básicas que debes saber sobre ndarray es que cuando haces una selección de un objeto, éste no es copiado.

Esta biblioteca permite realizar cálculos complejos en forma de matriz o vector. Tienen un funcionamiento similar a las listas y su representación varía en función de la arquitectura del sistema

Subrutinas

En informática, una subrutina o subprograma (también llamada procedimiento, función , rutina o método), como idea general, se presenta como un subalgoritmo que forma parte del algoritmo principal, el cual permite resolver una tarea específica.

Funciones

Las funciones son paquetes de operaciones ya definidos o que se pueden crear en un programa. Es algo bastante común y que facilita la escritura de código

Las funciones se pueden crear en cualquier punto de un programa, escribiendo su definición.

La primera línea de la definición de una función contiene:

  • la palabra reservada def
  • el nombre de la función (la guía de estilo de Python recomienda escribir todos los caracteres en minúsculas separando las palabras por guiones bajos)
  • paréntesis (que pueden incluir los argumentos de la función, como se explica más adelante)

Las instrucciones que forman la función se escriben con sangría con respecto a la primera línea.

Por comodidad, se puede indicar el final de la función con la palabra reservada return (más adelante se explica el uso de esta palabra reservada), aunque no es obligatorio.

Para poder utilizar una función en un programa se tiene que haber definido antes. Por ello, normalmente las definiciones de las funciones se suelen escribir al principio de los programas

Conflictos de nombres de variables

Como se ha comentado antes, una de las principales ventajas de las subrutinas es que permiten reutilizar el código. Pero copiar y pegar subrutinas de un programa a otro puede producir lo que se llama un conflicto de nombres de variables. En efecto, si la subrutina que pegamos en un programa utiliza alguna variable auxiliar para algún cálculo intermedio y resulta que el programa ya utilizaba una variable con el mismo nombre que esa variable auxiliar, los cambios en la variable que se hagan en la subrutina podrían afectar al resto del programa de forma imprevista.

Para resolver esto se pueden declarar variables locales dentro de la función que solo afectan a esta y no al resto del programa.

Biblioteca de funciones

Son bibliotecas de funciones ya hechas que se pueden agregar al programa de manera externa. Los compiladores para programas ya te traen las básicas aunque para cosas más específicas se descargan e insertan en el programa al principio de este. 

Se insertan al principio del programa con la palabra reservada import y su nombre. (Aunque estas deben ser instaladas en el editor de código con anterioridad).


Deja un comentario

Diseña un sitio como este con WordPress.com
Comenzar