Una vida llena de Python!

¿Qué es Python?

Python es un lenguaje de programación de alto nivel moderno, de propósito general, orientado a objetos; creado por Guido van
Rossum en la decada de los 90.

 

Caracteristicas

  • Lenguaje limpio y sencillo: código fácil de leer e intuitivo
  • Dinámicamente tipado : No es necesario definir el tipo de variables, argumentos de función o tipos de retorno.
  • Un lenguaje multiparadigma (orientación a objetos, imperativo y funcional.)
  • Un lenguaje multipropósito (Usado para hacer una web o hacer cálculo matemático, un script para que te automatice una tarea de sistemas o un framework REST)

Time to Hello World!

#include <iostream>
using namespace std;

int main() 
{
    cout << "Hello, World!";
    return 0;
}
print("Hello, World!")

C++

Python way!

Vamos a aprender lo básico

# Los comentarios son muy útiles para los programadores 
# Así que... POR FAVOR!! COMENTA TU CODIGO CUANDO TRABAJES CON OTROS FOR GOD SAKE!

print("Debo comentar mi codigo")

#Esto es una expresión

(5 * 10) - 4**2 + 3.14

# Asignación de variables

x = 2.13

a, b = 2, 10 

Tipos de variables

# Enteros

x = 3

# Flotantes

y = 3.12315124

# Imaginarios? :O 

z = 3 + 4j

# Strings

w = "Quiero egresar!!"
print(w) # Nos dará Quiero egresar!!

# Booleanos

a = True
b = False

Operaciones con cadenas

fullName = "Gerson Garrido"

# Tamaño de la cadena

len(name) # Nos dará 14

# Concatenacion

print(name + "tiene 23 años")

# Slicing 

name = fullName[0:6] # Nos dará Gerson

# Métodos avanzados

university =  "Universidad Nacional de Ingeniería"
university.index("Ing") # Retorna el indice donde empieza "Ing"

university.replace("Nacional","Privada")


Estructuras de control

# If / Else

if ranked >= 6000:
    print("GOD")
elif ranked >= 4000:
    print("Seems Good")
elif ranked >= 3000:
    print("Life is hard")
else:
    print("DELETE DOTA")

# While

i = 0
while i<4:
    print('No debes jugar dota')

# For

for i in range(4):
    print('No debes jugar dota ' + str(i))

Estructuras de control in a nutshell

Real Life Hacks :D

import time
import math

n = int(input("Cuantas iteraciones desea? "))

start = time.time()
       
pi,numer = 0,4.0
for i in range(n):
    denom = (2*i+1)
    term = numer/denom
    if i%2:
        pi -= term
    else:
        pi += term

end = time.time()
total_time = (end - start)
seconds = round(total_time, 8)


print("Valor de pi computado: " + str(pi))
print("error: " + str(math.fabs(math.pi - (pi))))
print(seconds, "seconds")

Colecciones I

# Ejemplo de listas

lista = [1 , 3 , "Hola" , 2.12 , 3j]

lista[2] # Imprime Hola

Listas

  • Las listas son un tipo de colección ordenada. Sería equivalente a lo que en otros lenguajes se conoce por arrays, o vectores.
  • Los elementos dentro de una lista pueden ser de cualquier tipo de dato.
  • Puedo agregar y eliminar elementos de la lista en cualquier momento y además modificar sus elementos cuando lo desee (a diferencia de las tuplas) esto significa que son mutables.

 

Colecciones II

# Operaciones de listas

lista = [1 , 3 , "Hola" , 2.12 , 3j]

len(lista) # 5

lista = lista + ["c++",82] # [1 , 3 , "Hola" , 2.12 , 3j, "c++", 821]

for element in lista:
    print( str( element ) ) # 1 , 3 , "Hola" , 2.12 , 3j, "c++", 821

"Hola" in lista # True

# Lista por comprensión
[str(n*n) for n in range(6)] #   ['0', '1', '4', '9', '16', '25']

#Metodo append

lista.append("Final") # [1 , 3 , "Hola" , 2.12 , 3j, "c++", 821, "Final"]

# Metodo split

oracion = "Este ejemplo tiene cinco palabras"
palabras = oracion.split() # ["Este", "Ejemplo", "tiene", "cinco", "palabras"]

Colecciones III

# Ejemplos de Diccionarios

diccionario = {'nombre' : 'Carlos', 'edad' : 22, 'cursos': ['C','Java','Python'] }
print(diccionario)

print(diccionario['nombre']) #Carlos

print(diccionario['edad'])#22

print(diccionario['cursos']) #['C','Java','Python']

Diccionarios

  • Los diccionarios, también llamados matrices asociativas, deben su nombre a que son colecciones que relacionan una clave y un valor, son muy parecidos a los objetos de JS.


Funciones

Como en cualquier otro lenguaje, en Python también es posible definir funciones, es decir, secuencias de enunciados que reciben ciertos datos, ejecutan algunas operaciones sobre ellos y devuelven un resultado.

 

# Funciones predefinidas

print(abs(-3)) # 3 
print(round(6.25)) # 6

# Definición de funciones

def funcion_saludo2(name): #name viene a ser el parámetro de la función
    print("Hola " + name)
    
funcion_saludo2("Goku")

# Algo mas hardcore

def calcula_media_desviacion(*args): # con el simbolo * le digo a la funcion que recibira una lista
    total = 0
    for i in args:
        total += i
    media = total / len(args)
    total = 0
    for i in args:
        total += (i - media) ** 2
    desviacion = (total / len(args)) ** 0.5
    return media, desviacion

media, desviacion_std = calcula_media_desviacion(3,4,5,8,2,6)
print("Media:", media)
print("Desviación estándar:", desviacion_std)

Expresiones Regulares

Hoy en día el procesamiento de texto se ha convertido en una tarea cotidiana para la programación, por ello para que una máquina sea capaz de realizar una busqueda de subcadenas o patrones dentro de otras cadenas de texto de manera eficiente y rápida se usan las expresiones regulares.

Las expresiones regulares, también conocidas como 'regex' o 'regexp', son patrones de búsqueda definidos con una sintaxis formal.

 

Ejemplo de validacion de un correo

Python Científico

Numpy

Es la librería natural para python numérico. La característica más potente de NumPy es la matriz n-dimensional. Esta biblioteca contiene funciones básicas de álgebra lineal, transformadas de Fourier, capacidades avanzadas de números aleatorios y herramientas para la integración con otros lenguajes de bajo nivel como Fortran, C y C ++.

Pandas

Es una librería para operaciones y manipulaciones de datos estructurados. Pandas ha sido añadido recientemente a Python y han sido fundamental para impulsar el uso de Python en la ciencia de datos.

 

Matplotlib

Es una librería de Python para crear una gran variedad de gráficos, a partir de histogramas, lineas, etc, usando si es necesario comandos de látex para agregar matemáticas a los gráficos.

Scikit-Learn

Libreria para Machine Learning, construida sobre NumPy, SciPy y Matplotlib, esta biblioteca contiene una gran cantidad de herramientas eficientes para el Machine Learning y el modelado estadístico incluyendo clasificación, regresión, agrupación y reducción de la dimensionalidad.

Time to DEMO

Made with Slides.com