miércoles, 25 de diciembre de 2019
domingo, 15 de diciembre de 2019
domingo, 8 de diciembre de 2019
10 mBot. Pulsacion boton
Programando #mBot para detectar si se ha pulsado el boton de la placa y ejecutar las ordenes indicadas para dicho caso.
viernes, 6 de diciembre de 2019
97 Python. Agenda contactos
Crea una agenda de contactos con Python.
Incluimos menu de opciones y grabaremos los datos en archivo csv.
Usaremos clases, funciones, metodos, archivos.
El codigo utilizado es el siguiente:
Incluimos menu de opciones y grabaremos los datos en archivo csv.
Usaremos clases, funciones, metodos, archivos.
El codigo utilizado es el siguiente:
# -*-coding:utf-8 -*-"""Created on Fri Dic 06 07:48:08 2019@author: Jose"""#modulosimport csvimport itertoolsimport re#clasesclass Contacto:nuevoId=itertools.count()def __init__(self,nombre,apellidos,empresa,fijo,movil):self.codigo=next(self.nuevoId)self.nombre=nombreself.apellidos=apellidosself.empresa=empresaself.fijo=fijoself.movil=movilclass Agenda:def __init__(self):self.contactos=[]def ordenarNombre(self):self.contactos.sort(key=lambda contacto: contacto.nombre)def ordenarApellidos(self):self.contactos.sort(key=lambda contacto: contacto.apellidos)def añadir(self,nombre,apellidos,empresa,fijo,movil):contacto=Contacto(nombre,apellidos,empresa,fijo,movil)self.contactos.append(contacto)def mostrarTodos(self):self.submenuOrden()for contacto in self.contactos:self.imprimeContacto(contacto)def buscar(self,textoBuscar):encontrado=0for contacto in self.contactos:if(re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellidos)):self.imprimeContacto(contacto)encontrado=encontrado+1self.submenuBuscar(contacto.codigo)if encontrado==0:self.noEncontrado()def borrar(self,codigo):for contacto in self.contactos:if contacto.codigo==codigo:print('---*---*---*---*---*---*---*---*')print('Quieres borrarlo? (s/n)')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='s' or opcion=='S':print('Borrando contacto!!!')del self.contactos[codigo]elif opcion=='n' or opcion=='N':breakdef modificar(self,codigo):for contacto in self.contactos:if contacto.codigo==codigo:del self.contactos[codigo]nombre=str(input('Escribe el nombre: '))apellidos=str(input('Escribe los apellidos: '))empresa=str(input('Escribe la empresa: '))fijo=str(input('Escribe el fijo: '))movil=str(input('Escribe el movil: '))contacto=Contacto(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)self.contactos.append(contacto)breakdef submenuBuscar(self,codigo):print('---*---*---*---*---*---*---*---*')print('Quieres (m)odificarlo o (b)orrarlo? ')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='m' or opcion=='M':self.modificar(codigo)elif opcion=='b' or opcion=='B':self.borrar(codigo)else:print('Continuamos sin realizar modificacion alguna')def submenuOrden(self):print('---*---*---*---*---*---*---*---*')print('Quieres ordenar por (n)ombre o por (a)pellidos?')print('---*---*---*---*---*---*---*---*')opcion=str(input(""))if opcion=='n' or opcion=='N':self.ordenarNombre()elif opcion=='a' or opcion=='A':self.ordenarApellidos()def grabar(self):with open('agenda.csv','w') as fichero:escribir=csv.writer(fichero)escribir.writerow(('codigo','nombre','apellidos','empresa','fijo','movil'))for contacto in self.contactos:escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellidos,contacto.empresa,contacto.fijo,contacto.movil))def imprimeContacto(self,contacto):print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')print('Codigo: {}'.format(contacto.codigo))print('Nombre: {}'.format(contacto.nombre))print('Apellidos: {}'.format(contacto.apellidos))print('Empresa: {}'.format(contacto.empresa))print('Fijo: {}'.format(contacto.fijo))print('Movil: {}'.format(contacto.movil))print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')def noEncontrado(self):print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')print('Contacto no encontrado')print('---*---*---*---*---*---*---*---*')print('---*---*---*---*---*---*---*---*')def ejecutar():agenda=Agenda()try:with open('agenda.csv','r') as fichero:lector=csv.DictReader(fichero,delimiter=',')for fila in lector:agenda.añadir(fila['nombre'].capitalize(),fila['apellidos'].capitalize(),fila['empresa'].capitalize(),fila['fijo'].capitalize(),fila['movil'].capitalize())except:print('Error al abrir fichero o que no existe aun')while True:menu=str(input("""\nSelecciona una opcion\n1 Mostrar lista de contactos2 Buscar contacto3 Añadir contacto0 Salir \n\n"""))if menu=='1':agenda.mostrarTodos()elif menu=='2':texto=str(input('Escribe el texto a buscar en contactos: '))agenda.buscar(texto.capitalize())agenda.grabar()elif menu=='3':nombre=str(input('Escribe el nombre: '))apellidos=str(input('Escribe los apellidos: '))empresa=str(input('Escribe la empresa: '))fijo=str(input('Escribe el fijo: '))movil=str(input('Escribe el movil: '))agenda.añadir(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)agenda.grabar()elif menu=='0':print('Hasta pronto!!!')agenda.grabar()breakelse:print('Opcion no valida!!!')if __name__=='__main__':ejecutar()
sábado, 23 de noviembre de 2019
07 Scratch. Piedra papel tijeras
Carga de los recursos necesarios para crear nuestro juego con Scratch.
viernes, 23 de agosto de 2019
94 Python. Graficos con libreria pandas y matplotlib
Realizar graficos con los datos obtenidos de un dataframe usando la libreria pandas y matplotlib en python.
93 Python. Aplicacion Cajas, ampliacion
Como continuacion del video anterior de creacion de una aplicacion sencilla para guardar datos de las cajas, en el siguiente video se amplia dicha aplicacion, dotandola de una consulta a la base de datos para obtener las ventas entre dos fechas indicadas.
lunes, 19 de agosto de 2019
92 Python. Aplicacion Caja diaria
Ejemplo de aplicacion creada con Python, para generar los datos que usaremos para crear los asientos contables requeridos de ventas sobre las cajas diarias.
Es una aplicacion con interfaz grafica en la que se introducen los datos de efectivo y tarjetas de dos tiendas y calcula la venta total, desglosa la base imponible y el iva, pasando seguidamente a guardar los datos en una base de datos sqlite y en un archivo de texto que imprimira inmediatamente.
Puedes ver el codigo completo en github.
Es una aplicacion con interfaz grafica en la que se introducen los datos de efectivo y tarjetas de dos tiendas y calcula la venta total, desglosa la base imponible y el iva, pasando seguidamente a guardar los datos en una base de datos sqlite y en un archivo de texto que imprimira inmediatamente.
Puedes ver el codigo completo en github.
09 mBot. SigueLineas parte 02
En el siguiente video amplio el codigo sobre la version siguelineas de video anterior.
Se añade al codigo sonido e iluminacion de leds segun el sensor que indique la salida de la linea.
Se añade al codigo sonido e iluminacion de leds segun el sensor que indique la salida de la linea.
miércoles, 7 de agosto de 2019
06 Scratch3. Bloques
Serie de videos con introduccion a los tipos bloques incluidos en la nueva version de Scratch, antes de empezar con la programacion en si.
Movimiento / Apariencia
Sonido / Eventos
Control / Sensores
Operadores
Variables
Funcion o metodo
Movimiento / Apariencia
Sonido / Eventos
Control / Sensores
Operadores
Variables
Funcion o metodo
sábado, 3 de agosto de 2019
90 Python. Pandas
Introduccion a la libreria Pandas de Python, con la que manejaremos estructuras de datos que utilizaremos para analisis.
import pandas as pd
columnas=['Nombre','Edad','Codigo']
indice01=['Jose','Lucia','Mar']
indice02=['Juan','Eva','Maria']
datos01=pd.DataFrame([['Jose',47,1273],['Lucia',40,2363],['Mar',44,2834]],index=indice01,columns=columnas)
datos02=pd.DataFrame([['Juan',57,1273],['Eva',None,2363],['Maria',24,2834]],index=indice02,columns=columnas)
print(datos01)
print(datos02)
datos=pd.concat([datos01,datos02])
print(datos)
datos=datos.drop('Nombre',axis=1)
print(datos)
print(datos.index)print(datos.columns)
print(datos.head(2))
print(datos.tail(2))
print(datos.describe())
print(datos.info())
print(datos.isna())
print(datos['Edad'])
print(datos01.drop('Codigo',axis=1))
print(datos01.drop('Nombre',axis=1))
print(datos01.head())
domingo, 14 de julio de 2019
89 Python. Numpy
En el siguiente video puedes ver una pequeña introduccion a la libreria Numpy de Python.
Facilita muchisimo las operaciones con vectores o matrices.
Ejemplos de codigo:
Facilita muchisimo las operaciones con vectores o matrices.
Ejemplos de codigo:
import numpy as np
lista=[1,2,4,5,3,8,72,32,9,2,7]
a=np.array(lista)
multiplicado=a*5
print(help(np.zeros))
b=np.arange(20).reshape(4,5)
print(b.shape)
print(b.ndim)
print(b.size)
print(len(b))
indices=[0,2,3]
print(a[indices])
ceros=np.zeros((4,5))
unos=np.ones((3,3))
unos=np.ones((4,5))
multiplica=ceros*unos
print(a.sum())
print(a.mean())
print(a.min())
print(a.max())
print(a[1:3])
c=a[:]
a=a*2
c=a[:].copy()
print(a)
print(c)
sábado, 6 de julio de 2019
88 Python. Pyinstaller
Crea un ejecutable de tu aplicacion python para poder distribuirla en sistemas Windows.
87 Python. WebScrapping 02
En el video vemos como obtener datos de una web real, comparando los precios obtenidos usando beautifulSoup y request con Python.
sábado, 29 de junio de 2019
86 Python. Portapapeles
En el siguiente video vemos como poder acceder al portapapeles del sistema mediante Python, con lo que podemos obtener datos y enviarlos.
domingo, 16 de junio de 2019
05 Scratch3. Juego Adivina Numero
Como realizar un sencillo juego de adivinar el numero con Scratch.
Veremos como realizar bloques para evitar repetir codigo, bucles, condicionales, variables, generacion de numero al azar, etc.
domingo, 9 de junio de 2019
03 Scratch3. Mover objetos
Dando movimiento a objetos o personajes con Scratch, usando teclas o siguiendo al puntero del raton.
sábado, 1 de junio de 2019
85 Python. Listas emulando pilas
Vamos a usar listas para emular pilas y usar el metodo LIFO (ultimo en entrar primero en salir) con ellas.
pila=[1,3,2,5,7]
print(pila)
#añadimos elemento a la pila
pila.append(7)
print(pila)
#quitamos 2 elementos
pila.pop()
pila.pop()
print(pila)
84 Python. Adivina numero
Ejemplo codigo adivina numero, usando random con python.
Codigo del ejemplo:import random
intentos=0
print('Hola, como te llamas? ')
nombre=input()
numeroMaquina=random.randint(1,20)
print(nombre+', voy a pensar un numero entre 1 y 20')
for intentos in range(9):
print('Intentalo : ')
numeroUsuario=int(input())
if numeroUsuario<numeroMaquina:
print('Tu numero es mas bajo')
if numeroUsuario>numeroMaquina:
print('Tu numero es mayor')
if numeroUsuario==numeroMaquina:
break
if numeroUsuario==numeroMaquina:
print('Acertastes!!!')
intentos=str(intentos+1)
print('En '+intentos+' veces')
if numeroUsuario!=numeroMaquina:
numeroMaquina=str(numeroMaquina)
print('El numero pensado era '+numeroMaquina)
83 Python. Cifrado Cesar
Codifica una cadena de textos mediante el metodo Cesar usando Python.
El codigo es:
desplazamiento=12
def codifica(texto):
cifrado=""
if texto==texto.upper():
lista="A,B,C,D,E,F,G,H,I,J,K,L,M,N,Ñ,O,P,Q,R,S,T,U,V,W,X,Y,Z"
else:
lista="a,b,c,d,e,f,g,h,i,j,k,l,m,n,ñ,o,p,q,r,s,t,u,v,w,x,y,z"
for car in texto:
if car in lista:
cifrado += lista[(lista.index(car)+desplazamiento%(len(lista)))]
else:
cifrado+=car
print(cifrado)
return cifrado
def descodifica(texto):
descifrado=""
if texto==texto.upper():
lista="A,B,C,D,E,F,G,H,I,J,K,L,M,N,Ñ,O,P,Q,R,S,T,U,V,W,X,Y,Z"
else:
lista="a,b,c,d,e,f,g,h,i,j,k,l,m,n,ñ,o,p,q,r,s,t,u,v,w,x,y,z"
for car in texto:
if car in lista:
descifrado += lista[(lista.index(car)-desplazamiento%(len(lista)))]
else:
descifrado+=car
print(descifrado)
return descifrado
if __name__=="__main__":
cifrado=codifica('hola')
descifrado=descodifica(cifrado)
lunes, 27 de mayo de 2019
82 Python. Cuanto tarda una operacion Python?
Veamos un codigo que nos muestre cuanto tarda nuestro ordenador en realizar un bucle.
import time
inicio = time.time()
for x in range(1000):
print(x)
fin=time.time()
print("Ha tardado en realizar el bucle -> ",fin-inicio)
81 Python. Condicional if
Veamos un ejemplo de dos formas de preparar un condicional "if" con python, el "clasico" y en una linea.
num = int(input("Dame un numero"))
#habitual if
if num%2==0:
print("Es par")
else:
print("Es impar")
#en una linea
print("Es par") if num%2==0 else print("Es impar")
sábado, 25 de mayo de 2019
80 Python. WebScraping
Iniciacion a webscraping, obteniendo datos de una web usando Python.
Puedes acceder a la web de pruebas en este enlace.Es aconsejable tener una base de html, puedes consultar una introduccion aqui
El codigo python disponible en github.
from urllib.request import urlopen
from urllib.error import HTTPError
from urllib.error import URLError
from bs4 import BeautifulSoup
try:
html = urlopen("http://ticoticotaa.es/ejemplowebscraping.php")
except HTTPError as e:
print(e)
except URLError:
print("Servidor caido o dominio incorrecto")
else:
resultado = BeautifulSoup(html.read(),"html5lib")
#print(resultado.title)
articulo = resultado.findAll("div",{"class":["articulo"]})
#print(articulo)
descripcion=resultado.findAll("div",{"class":["descripcion"]})
precio=resultado.findAll("div",{"class":["precio"]})
descripcionLista=[]
precioLista=[]
for desc in descripcion:
descripcionLista.append(desc.getText().strip())
print(descripcionLista)
for prec in precio:
precioLista.append(prec.getText().strip())
print(precioLista)
for i in range(len(descripcionLista)):
if int(precioLista[i])<150:
print(descripcionLista[i]+' : '+precioLista[i]+' €')
print(' *** esta por debajo de 150 € *** ')
else:
print(descripcionLista[i]+' : '+precioLista[i]+' €')
Suscribirse a:
Entradas (Atom)