Ir al contenido principal

Practica 1

Codigo de PASSWORD
 
class password_validar():
    errors = []

    def longitud(self, passw):
        if len(passw) < 8:
            self.errors.append('La contrasena debe tener al menos 8 caracteres')
            return False
        else:
            return True

    def minuscula(self, passw):
        letras_minuscula = False
        for carac in passw:
            if carac.islower() == True:
                letras_minuscula = True
        if not letras_minuscula:
            self.errors.append('La contrasena debe tener al menos una minuscula')
            return False
        else:
            return True

    def mayuscula(self, passw):
        letras_mayuscula = False
        for carac in passw:
            if carac.isupper() == True:
                letras_mayuscula = True
        if not letras_mayuscula:
            self.errors.append('La contrasena debe tener al menos una mayuscula')
            return False
        else:
            return True

    def numero(self, passw):
        num = False
        for carac in passw:
            if carac.isdigit() == True:
                num = True

        if not num:
            self.errors.append('La contrasena debe tener al menos un numero')
            return False
        else:
            return True

    def no_alfanumerico(self, passw):
        if passw.isalnum() == True:
            self.errors.append('La contrasena debe tener al menos un caracter no alfanumerico')
            return False
        else:
            return True

    def espacios(self, passw):
        if passw.count(" ") > 0:
            self.errors.append('La contrasena no puede contener espacios en blanco')
            return False
        else:
            return True

    def validar_password(self, passw):
        valido = self.longitud(passw) and self.minuscula(passw) and self.mayuscula(passw) and self.numero(
            passw) and self.no_alfanumerico(passw) and self.espacios(passw)
        return valido
Codigo de USER
 
 class usuario_validar():
    errors = []

    def longitud(self, usercomp):
        if len(usercomp) < 6:
            self.errors.append('El nombre de usuario debe contener al menos 6 caracteres')
            return False

        elif len(usercomp) > 12:
            self.errors.append('El nombre de usuario debe contener maximo 12 caracteres')
            return False

        else:
            return True

    def alfanumerico(self, usercomp):
        if usercomp.isalnum() == False:
            self.errors.append('El nombre de usuario puede contener solo letras y numeros')
            return False
        else:
            return True

    def validar_usuario(self, usercomp):
        valido = self.longitud(usercomp) and self.alfanumerico(usercomp)
        return valido
Codigo validador
 
# -*- coding: utf-8 -*-
from Tkinter import *
import tkMessageBox
import userc  as uv
import paswordc as pv

user_validator = uv.usuario_validar()
pass_validator = pv.password_validar()


def validation():
    cuser = user.get()
    cpasword = pasword.get()
    correcto = False

    if correcto == False:
        if not user_validator.validar_usuario(cuser):
            for error in user_validator.errors:
                tkMessageBox.showinfo("Aviso error usuario", error)
                correcto = False

                user_validator.errors.remove(error)
        else:
            correcto = True
            if correcto == True:
                if not pass_validator.validar_password(cpasword):
                    for error in pass_validator.errors:
                        tkMessageBox.showinfo("Aviso error contraseña", error)
                        correcto = True
                        pass_validator.errors.remove(error)
                else:
                    correcto = False
                    tkMessageBox.showinfo("Aviso", "Usuario y contraseña creados exitosamente")


raiz = Tk()
raiz.title("ventana primaria")
raiz.resizable(1, 1)  # para permitir agrandar o no el ancho o la altura con el moyuse
#raiz.iconbitmap("descarga.ico")
# raiz.geometry("500x600")
raiz.config(bg="cyan")
raiz.config(bd=15)
raiz.config(relief="groove")

miFrame = Frame(raiz)
miFrame.pack()
miFrame.config(bg="pink")
miFrame.config(bd=10)
miFrame.config(relief="sunken")
miFrame.config(cursor="hand2")

miLabel1 = Label(miFrame, text="Ingrese sus datos", fg="red", bg="pink", font=("Arial", 18)).grid(row=0, column=0,
                                                                                                  pady="4")
nombreusuarioLabel = Label(miFrame, text="Nombre usuario: ", bg="pink").grid(row=3, column=0, sticky="w", pady="1")
contrasenaLabel = Label(miFrame, text="Contraseña: ", bg="pink").grid(row=4, column=0, sticky="w", pady="1")

user = StringVar()
pasword = StringVar()

cuadronombreusuario = Entry(miFrame, textvariable=user)
cuadronombreusuario.grid(row=3, column=1, pady="1")
cuadronombreusuario.config(fg="blue", justify="center")

cuadrocontrasena = Entry(miFrame, textvariable=pasword)
cuadrocontrasena.grid(row=4, column=1, pady="1")
cuadrocontrasena.config(show="*", fg="blue", justify="center")

botonEnvio = Button(raiz, text="Enviar", command=validation)
botonEnvio.pack()

raiz.mainloop()
 
Resultado

Comentarios

Entradas más populares de este blog

Unidad III: Configuración y administración del espacio en disco

3.1 Estructuras lógicas de almacenamiento  Para la gestión del almacenamiento de una base de datos existen 4 conceptos bien definidos que deben ser conocidos para poder comprender la forma en la que se almacenan los datos. Vamos a ver la diferencia entre bloque, extensión, segmento y espacio de tablas. Bloques: Se tratan de la unidad más pequeña. Generalmente debe múltiple del tamaño de bloque del sistema operativo, ya que es la unidad mínima que va a pedir Oracle al sistema operativo. Si no fuera múltiple del bloque del sistema se añadiría un trabajo extra ya que el sistema debería obtener más datos de los estrictamente necesarios. Se especifica mediante DB_BLOCK_SIZE. Extensiones: Se forma con uno o más bloques. Cuando se aumenta tamaño de un objeto se usa una extensión para incrementar el espacio. Segmentos: Grupo de extensiones que forman un objeto de la base de datos, como por ejemplo una tabla o un índice. Espacio de tablas: Formado por uno o más datafiles, cada da...

Conexion MySQL Workbench con Python

CODIGO (FORMA 1): import pymysql try: conexion = pymysql.connect(host='localhost',user='root',password='kennethbd',db='escuela') print("Conexión correcta") except (pymysql.err.OperationalError, pymysql.err.InternalError) as e: print("Ocurrió un error al conectar: ", e) CODIGO (FORMA 2): import pymysql ############### CONFIGURAR ESTO ################### # Abre conexion con la base de datos db = pymysql.connect(host='localhost',user='root',password='kennethbd',db='escuela') ################################################## # prepare a cursor object using cursor() method cursor = db.cursor() # ejecuta el SQL query usando el metodo execute(). cursor.execute("SELECT VERSION()") # procesa una unica linea usando el metodo fetchone(). data = cursor.fetchone() print ("Database version : {0}".format(data)) # desconecta del servidor db.close() NOTA (FORMA 2) Si corres este...

Ejemplos de Lenguaje Ensamblador (Emu8086)

Ejemplos de lenguaje ensamblador Programa 1 Programa que muestre como mensaje en la pantalla "Hello World" Código: https://gist.github.com/46e552d13e29cc398d48ce6bfe195eb9.git Resultado: Programa 2 Programa que convierta números de decimal a binario Código: https://gist.github.com/46af226806fdfa4c94359dd9c982d6e7.git Resultado: Programa 3 Programa que verifica si dos cadenas son iguales Código: https://gist.github.com/7c9d5013124f78a94341696756c9c25d.git Resultado: Programa 4 Escribir un código que verifique si una cadena es subcadena de otra. Por ejemplo: «la Mu» es subcadena de «Hola Mundo». La cadena: «233» es subcadena de la cadena «2122432234» Código: https://gist.github.com/Kenneth9951/20bd7ed7b9871018af99aab6685e7f3f Resultado: Programa 5  Escribir un código que verifique que todas los caracteres de una cadena se encuentran en otra. Por ejemplo: todas las letras de la cadena «casa» se encuentran en «escaso». Pero no todas las letras de «cerro» se en cuentran en «recana...