Publicado el Deja un comentario

Python. Agenda de contactos

Crea una agenda de contactos y guardalos en un archivo csv que podras abrir con editor de textos o excel.
Para crear la agenda usaremos clases, funciones, metodos, etc.

El codigo utilizado es el siguiente:


# -*-coding:utf-8 -*-

"""
Created on Fri Dic 06 07:48:08 2019

@author: Jose
"""

#modulos
import csv
import itertools
import re

#clases
class Contacto:
nuevoId=itertools.count()
def __init__(self,nombre,apellidos,empresa,fijo,movil):
self.codigo=next(self.nuevoId)
self.nombre=nombre
self.apellidos=apellidos
self.empresa=empresa
self.fijo=fijo
self.movil=movil
class 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=0
for contacto in self.contactos:
if(re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellidos)):
self.imprimeContacto(contacto)
encontrado=encontrado+1
self.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':
break
def 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)
break
def 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\n
1 Mostrar lista de contactos
2 Buscar contacto
3 Añadir contacto
0 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()
break
else:
print('Opcion no valida!!!')
if __name__=='__main__':
ejecutar()

Please follow and like us:
Publicado el Deja un comentario

Calc 13. Funciones y formato condicional

Vamos a usar las funciones de OpenOffice Calc para obtener sumas, medias, valor maximo y minimo de un intervalo de datos.
Una vez obtenido el resultado requerido, vamos a establecer un formato condicional a los datos de la tabla, para conseguir visualizar facilmente los datos que estan por encima y por debajo de la media, estableciendo un color de fondo.

Please follow and like us:
Publicado el Deja un comentario

29 Python. Ventana Email

Construimos una sencilla aplicacion para poder enviar emails usando la configuracion de Gmail.

from tkinter import *
from tkinter import messagebox
import smtplib
def enviar():
    email=emailDestino.get()
    texto=text.get(1.0,END)
    remitente=’dafsdafa@gmail.com’ #cambiado por seguridad
    destinatario=email
    msg=texto
    username=’dafsdafa@gmail.com’#cambiado por seguridad    password=’pdfafsafsa’#cambiado por seguridad
    server=smtplib.SMTP(‘smtp.gmail.com:587’)
    server.starttls()
    server.login(username,password)
    server.sendmail(remitente,destinatario,msg)
    server.quit()
    messagebox.showinfo(“Mensaje”,”Email enviado”)
def borrar():
    emailDestino.set(“”)
    text.delete(1.0,END)
   
                       
ANCHO=740
ALTO=550

ventana=Tk()
anchoAlto=str(ANCHO)+”x”+str(ALTO)
ventana.geometry(anchoAlto)
ventana.title(“Envia email”)
colorFondo=”#007″
colorLetra=”#FFF”
ventana.configure(background=colorFondo)
emailDestino=StringVar()
etiquetaEmail=Label(ventana,text=”Email”,bg=colorFondo,fg=colorLetra).place(x=50,y=40)
cajaEmail=Entry(ventana,textvariable=emailDestino).place(x=110,y=40,width=180)
etiquetaTexto=Label(ventana,text=”Texto”,bg=colorFondo,fg=colorLetra).place(x=50,y=80)
text=Text(ventana)
text.place(x=110,y=80,width=500)
botonEnviar=Button(ventana,text=”Enviar”,command=enviar,bg=colorFondo,fg=colorLetra).place(x=270,y=500)
botonBorrar=Button(ventana,text=”Borrar”,command=borrar,bg=colorFondo,fg=colorLetra).place(x=330,y=500)
mainloop()

Please follow and like us:
Publicado el Deja un comentario

08 Python. Funciones

Crearemos 2 funciones diferentes para ver como devuelven el valor, la llamada a la funcion solo se puede realizar una vez creada.

#FUNCION PAR IMPAR
def es_par(numero):
    if numero%2==0:
        return True
    else:
        return False
#PEDIMOS NUMERO AL USUARIO
numero=int(input(“Dime un numero y te dire si es par o no : “))
if(es_par(numero)==True):
    print(“El numero es par”)
else:
    print(“El numero es impar”)
parImpar=es_par(numero)
print(“El resultado devuelto a la variable parImpar es = “,parImpar)

 #FUNCION SUMA
def suma(numero1,numero2):
    total=numero1+numero2
    print(“La suma es : “,total)
  
#PEDIMOS NUMERO AL USUARIO
numero1=int(input(“Dime el primer numero: “))
numero2=int(input(“Dime el segundo numero: “))
suma(numero1,numero2)

Please follow and like us:
Publicado el Deja un comentario

10. Juego del topo con App Inventor

En este video vemos como crear un juego, en este caso creamos el juego del topo, bastante conocido y que nos sirve para ver como dar movimiento a la imagen cambiando su posicion al azar, veremos tambien condicionales, funciones o metodos, variables, etc.
Podeis ver el video aqui:

Os pongo tambien imagenes del codigo y diseño de las pantallas.

Please follow and like us:
Publicado el Deja un comentario

04 Javascript Funciones

Las funciones nos seran utiles para escribir codigo que realice alguna accion sin tener
que escribirlo cada vez que queramos realizar dicha accion, es codigo reutilizable y
llamaremos a dicho codigo cada vez que necesitemos que ejecute la accion requerida.
Ejemplo de llamada a funcion:

<html>
<head><title></title>
</head>
<body>
<script>
function saludo(){
alert(“hola, bienvenido”);
}
saludo();
</script>
</body>
</html>

En este ejemplo se llama a la funcion mediante “saludo()”, y se ejecuta el codigo que hemos
situado dentro de “function saludo()”, lo que hara que se muestre en una ventana emergente
“hola, bienvenido”.
Podemos tambien incluir parametros a las funciones para que realicen un calculo, como podria
ser la suma de 2 numeros, aqui os pongo un ejemplo:

<html>
<head>
<title>Suma de 2 numeros</title>
</head>
<body>
<script>
function suma(num1,num2){
var resultado=num1+num2;
alert(“La suma es igual a “+resultado);
}
var num1=3;
var num2=4;
suma(num1,num2);
</script>
</body>
</html>

Como veis en este ejemplo creamos dos variables, que pasamos como parametros a la funcion suma,
dentro de la funcion se obtiene el resultado y se muestra.
Tambien podemos devolver el valor calculado mediante la funcion return, como podeis ver en este ejemplo:

<html>
<head>
<title>Suma de 2 numeros</title>
</head>
<body>
<script>
function suma(num1,num2){
var resultado=num1+num2;
return resultado;
}
var num1=3;
var num2=4;
var x=suma(num1,num2);
alert(“La suma es igual a “+x);
</script>
</body>
</html>

En este ultimo ejemplo, la funcion se limita a calcular y devolver el resultado, sin mostrarlo, este resultado
lo guardamos en la variable “x” y lo mostramos por pantalla.
Con esto hemos visto lo basico de las funciones para que empecemos a crear codigo mas util y reutilizable.
Espero os sea util, gracias.

Please follow and like us:
Publicado el Deja un comentario

Php – 17. Archivo de Texto 2, lectura

En esta entrada os pongo un ejemplo de codigo para leer un archivo o fichero de texto desde php, segun el siguiente codigo:

<!DOCTYPE html>
<html>

<head>
<meta charset=’utf-8′>
<link rel=”stylesheet” href=”hojadeestilo.css”>
<title>Leer Datos</title>
</head>
<body>
<header>
<h1>Leer datos</h1>
<figure><img src=”milogo.jpeg”/></figure>
</header>

<nav>
<ul>
<li><a href=”index.html”>Inicio</a></li>
<li><a href=”acercade.html”>Acerca de</a></li>
</ul>
</nav>
<section>
<article>
<hgroup>
<h1>Abrimos fichero para lectura</h1>
<h2>practica 2</h2>
</hgroup>
<?php
$fichero=fopen(“archivo.txt”,”r”) or die(“problemas al leer fichero”); // “r” para lectura
while(!feof($fichero)){
$traer=fgets($fichero);
$saltodelinea=nl2br($traer);
echo “<p>$saltodelinea</p>”;
}

echo”<p><br>Datos leidos</p>”;
?>

</article>

</section>

<aside>
<h1>Siguenos en:</h1>
<ul>
<li><a href=”facebook.html”>Facebook</a>
</li>
<li><a href=”twitter.html”>Twitter</a></li>
</ul>
</aside>
<footer>

<p>Pagina creada por Ticoticotaa @2016</p>

<ul>
<li><a href=”contacto.html”>Contacto</a>
</li>
<li><a href=”mapaweb.html”>Mapa Web</a></li>
</ul>
</footer>
</body>
</html>

El codigo php que obtiene los datos lo marco en rojo para destacarlo,
este codigo esta incrustado en el codigo html como vimos en anterior
entrada, asi podemos mantener el formato de la pagina y cambiar solo el
contenido que necesitamos, en este caso abrimos el fichero con el atributo “r” que significa que lo abrimos para lectura (read). Contemplamos tambien el caso del error con “or die”.
Despues creamos un bucle con while que indica que mientras no llegue al final del archivo (feof), obtenga el dato y le inserte un salto de linea, despues lo muestra y cuando termina el bucle pone el mensaje final.
El resto del codigo se explica con los comentarios.
Espero os sea util.

Please follow and like us:
Publicado el Deja un comentario

Php – 14. Funciones

En esta entrada os pongo un ejemplo de una funcion y como llamarla desde php:

<?php
//Funcion en php (Ticoticotaa)
//Definimos la funcion
function media($v1,$v2,$v3){
//formula que obtiene la media de tres valores
$resultado=(($v1+$v2+$v3)/3);
//resultado a devolver
return $resultado;
}
//se llama a la funcion y se imprime en pantalla
echo “La media de 15, 46 y 37 es “.media(15,46,37);
?>

Primero definimos la funcion, esto sera util para tareas repetitivas en las que solo con poner el nombre y los valores que indiquemos en la funcion
obtendremos el resultado indicado en ella, sin tener que escribir el mismo codigo infinitas veces.
Para ello debemos pasarle los valores indicados, el nombre de la funcion no tiene que ir con el simbolo $.
La funcion procesa la formula para obtener el resultado con los datos indicados en la llamada y lo devuelve mediante el comando return.
El resultado obtenido lo presentamos en pantalla, tambien se podria almacenar en una variable, podeis hacer las pruebas que se os ocurran para practicar.
Espero os sea util.

Please follow and like us:
Publicado el Deja un comentario

#PhpFunciones

Las funciones nos facilitan la reutilización de codigo y que tengamos un
codigo mas legible y ordenado. Para definir una funcion en PHP, hacemos
lo siguiente:
function [nombre funcion]([parametros])
{
[algoritmo]
}
Una función puede devolver un dato, supongamos que necesitamos una
función que nos de la media de dos importes, el código sería:
<html>
<head>
<title>Media</title>
</head>
<body>
<?php
function devuelvemedia ($num1,$num2)
{
$media=$num1/$num2;
return $media;
}
$n1=3;
$n2=2;
$m=devuelvemedia ($n1,$n2);
echo $m;
?>
</body>
</html>
 Al llamar a la funcion el dato devuelto lo guardamos en la variable $m.
Cuando la funcion devuelve dato, tenemos que emplear el comando
return seguido de la variable.

Please follow and like us: