# Python
- Excepciones
try:
result = 2 / 0
except ZeroDivisionError:
print("No se puede dividir por 0")
except:
print("Pueden haber varios tipos de error")
else:
print("Ha ocurrido un error generico")
finally:
print("Fin de la ejecucion")
try:
raise Exception("HA ocurrido un error")
except Exception as error:
print(error)
- Anotations
1-Se le puede indicar a la funcion que va a recibir un entero y va a devolver un entero
def AumentarNumero(numero : int) -> int:
return numero + 1
2-Tambien a variables
contador : int = 0
map() filter() reduce()
CTR + ALT + S => ABRE CONFIGURACION DE PYCHARM
1- Map() = Crea otro objeto a partir de una coleccion
numeros = [2,4,8,10,11]
resultado = map(lambda numero : numero * 2,numeros) #primer agumento es una accion , en este caso una funcion y despues la coleccion
print(list(resultado))
2- Filter() => Crea otro objeto a partir de una condicion(funcion) que retorna true o false y una coleccion
numeros = [2,4,8,10,11,13,15,16,17,20]
esPar = lambda numero : numero % 2 == 0
reusltado = filter(esPar, numeros) # [2, 4, 8, 10, 16, 20]
print(list(reusltado))
3- Reduce() => Permite ejecutar una funcion de 2 argumentos para un iterable, en el ejemplo se suman los elemtnos de la posicion 2 = [1]
from functools import reduce
gastos = [
('ARREGLOAUTO', 150),
('ComidaDiaria', 350)
]
resultado = reduce(lambda a, b : a[1] + b[1], gastos)
print(resultado) # 500
- lambaExpresion Anonimous function
duplicador = lambda numero : numero * numero
suma = lambda a,b : a + b
print(duplicador(6)) #36
print(suma(6,6)) #12
- Modules
1-archivo 1
def saludar():
print("Hola desde otro archivo")
2-archivo 2
from utils import saludar
saludar() #Hola desde otro archivo
- Clases y herencia
class Animal():
def caminar(self):
print("Caminando")
class Perro(Animal): #en el argumento de la clase se le pasa otra clase para heredad sus atributos y metodos segun corresponda
def __init__(self,nombre,edad): #self hace referencia a la instancia , self no es una palabra reservada solo es una convencion
self.nombre = nombre
self.edad = edad
def ladrar:
print("wowwww")
agustin = Perro("agustin",14)
agustin.ladrar()
agustin.caminar()
- Loops
contador = 0
coleccion = ["seba","diego","cristobal","felipe"]
while contador < 4:
print(contador) # 1 2 3 4
contador=contador+1
for variableNueva in coleccion:
print(variableNueva + " Sepulveda") # todos los nombers mas el sepulveda
for listaNueva in range(15):
print(listaNueva)# range crea una lista del 0 al 15
for index,listaNueva in enumerate(coleccion):
print(index,listaNueva)# enumarete devuelve el index y el valor del arreglo 0 "seba" , 1 "diego" , etc ...
- Functions
def saludar(nombre ="Amigo"):
return print(f"Saludos {nombre}")
saludar("Seba")
saludar()
- Instalar dependencias
pip install pyenv #instalar ambientes virtuales
pip install flask #flask framework y servidor web
- Ejecutar flask
import sys
from flask import Flask, render_template
app = Flask(__name__)
@app.route("/")
def hello_world():
titulo ='Titulo Personalizado';
return render_template('index.html', titulo=titulo);
if __name__ == '__main__':
app.run()
- En el HTML se puede recibir la variable asi
<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<meta charset="UTF-8">
{% if titulo %}
<title>{{titulo}}</title>
{% else %}
<title>Sin titulo</title>
{% endif%}
</head>
<body>
<form class="container-fluid h-100" action="/" method="POST">
<div class="form-group">
<label for="titulo">Ejemplo</label>
<input type="text" class="form-control" id="titulo" name="titulo" placeholder="">
</div>
<button type="submit" class="btn btn-success">Submit</button>
</form>
</body>
</html>
- Variables y funciones
- Identacion es primordial en python
def saludar():
return "Saludos"
def saludarConArgumento(nombre):
return "Saludos",nombre
respuesta = saludar()
print(respuesta)
print(saludarConArgumento("Sebastian"))
- Dictionary
- Sirve para crear pares de llaves valor
result = {"nombre":"Sebastian" , "edad":26}
print(result.get("nombre")) #sebastian
print(result.get("color","Sin color disponible")) #si no encuentra la llave imprime el valor por defecto
del result # elimina objetos, listas diccionarios etc
- Importar Libreria Random y Template string en Python
- Sirve para crear pares de llaves valor
import random
def ObtenerOpciones():
opcionJugador = input("Eliga una opcion (Piedra,Papel,Tijera)")
opciones = ["piedra","papel","tijera"]
opcionComputador = random.choice(opciones)
resultado = VerificarGanador(opcionJugador,opcionComputador)
return resultado
def VerificarGanador(jugador,computador):
print(f"Jugador: {jugador} --- Computador: {computador}")
if (jugador==computador):
return "Es un Empate"
elif(jugador == "piedra" and computador == "tijera"):
return "Jugador Gana"
elif(jugador == "papel" and computador == "piedra"):
return "Jugador Gana"
elif(jugador == "tijera" and computador == "papel"):
return "Jugador Gana"
elif(jugador !="papel" and jugador !="piedra" and jugador != "tijera"):
return "Debe ingresar una opcion valida"
else:
return "Computador gana"
print(ObtenerOpciones())
- Comentario
# esto es un comentario en python
- Verificar tipo de variable
print(type("asd")==str) # true
print(isinstance("asd",str))# true
print(isinstance(3,float))# false
print(isinstance(float(3),float))#true, se usa el casteo implicito
- String Method
print("sebastian".upper()) # SEBASTIAN
print("sebastian".title()) # Sebastian
print("Seba" in "Sebastian") # in es como el contains
- any
# Devuelve true si algun valor del enumerable es verdadero
libro1 = True
libro2 = False
existeLibro = any([libro1,libro2])
print(existeLibro) # true
- Enum
class Estado(Enum):
INACTIVO =0 #son constantes que no cambian, ya que en python no se pueden declarar constantes
ACTIVO= 1
print(Estado.ACTIVO.value) #1
print(Estado.ACTIVO) #Estado.ACTIVO
print(Estado(1)) #Estado.ACTIVO
- Listas
lista = ["agustin","toby",1,False]
print(lista[0]) #agustin
print("agustin" in lista) #true
lista.append("Seba") #agrega un nuevo elemento a la lista
print(lista[-1]) # devuelve el ultimo en la lista
print(lista.pop()) # elimina el ultimo elemnto ded la lista y lo muestra
- Tuples 1- Las tuplas no se pueden modificar
nombres = ("sebas", "diego")
print(nombres[0]) #sebas
print(nombres.index("sebas"))#0 devuelve el index
- Sets
setNombres1 = {"seba","diego"}
setNombres2 = {"seba","cristobal"}
intersect = setNombres1 & setNombres2 #chekea las similutdes
print(intersect) #seba
unir = setNombres1 | setNombres2
print(unir) # {'cristobal', 'seba', 'diego'}
print(list(unir)) # ['diego', 'cristobal', 'seba']