Skip to content

Instantly share code, notes, and snippets.

@lokilloboss
Created February 9, 2024 15:27
Show Gist options
  • Save lokilloboss/2a69ae870cf150ccb68e40d8bf448263 to your computer and use it in GitHub Desktop.
Save lokilloboss/2a69ae870cf150ccb68e40d8bf448263 to your computer and use it in GitHub Desktop.
Reto del dia 5
import re
# Variable global para almacenar ids
ids_usuarios = []
# Variable global para almacenar información de usuarios
usuarios = {}
# Función para generar ID único
def generate_id():
global id_counter
id_counter += 1
return id_counter
def registrar_usuario(nombre, apellidos, telefono, correo, id_usuario):
# Validar nombre
if not validar_nombre(nombre):
print(f"Error: El nombre no es válido.")
return False
# Validar apellidos
if not validar_apellidos(apellidos):
print(f"Error: Los apellidos no son válidos.")
return False
# Validar telefono
if not validar_telefono(telefono):
print(f"Error: El número de teléfono no es válido.")
return False
# Validar correo
if not validar_correo(correo):
print(f"Error: El correo electrónico no es válido.")
return False
# Almacenar información del usuario en un diccionario
usuarios[id_usuario] = {
"nombre": nombre,
"apellidos": apellidos,
"telefono": telefono,
"correo": correo
}
# Imprimir información del usuario
print(f"Usuario registrado: {nombre} {apellidos}")
print(f"ID: {id_usuario}")
print(f"Teléfono: {telefono}")
print(f"Correo electrónico: {correo}")
# Registrar id en la lista
ids_usuarios.append(id_usuario)
return True
def validar_nombre(nombre):
# Expresión regular que coincide con cualquier letra (mayúscula o minúscula)
patron = re.compile(r'^[a-zA-Záéíóúñ]+$')
if not patron.match(nombre): # Valida si el nombre coincide con la expresión regular
print(f"Error: El nombre solo debe contener letras.")
return False
if len(nombre) < 5 or len(nombre) > 50:
print(f"Error: El nombre debe tener entre 5 y 50 caracteres.")
return False
return True # Si el nombre es válido, retorna True
def validar_apellidos(apellidos):
if len(apellidos) < 5 or len(apellidos) > 50:
print(f"Error: Los apellidos deben tener entre 5 y 50 caracteres.")
return False
return True
def validar_telefono(telefono):
# Validar longitud de telefono
if len(telefono) != 10:
print(f"Error: El número de teléfono debe tener 10 dígitos.")
return False
# Validar que sean números
patron = re.compile(r'^[0-9]+$')
if not patron.match(telefono):
print(f"Error: El número de teléfono solo debe contener números.")
return False
return True
def validar_correo(correo):
if len(correo) < 5 or len(correo) > 50:
print(f"Error: El correo electrónico debe tener entre 5 y 50 caracteres.")
return False
# Validar formato de correo electrónico
patron = re.compile(r'^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$')
if not patron.match(correo):
print(f"Error: El correo electrónico no tiene un formato válido.")
return False
return True
def listar_usuarios():
# Imprimir lista de ids
print("**Lista de IDs de usuarios registrados:**")
for id in ids_usuarios:
print(f"- {id}")
def ver_informacion_usuario(id_usuario):
# Verificar si el ID existe
if id_usuario in usuarios:
# Imprimir información del usuario
print("**Información del usuario:**")
print(f"ID: {id_usuario}")
for key, value in usuarios[id_usuario].items():
print(f"{key.capitalize()}: {value}")
else:
print("Error: ID de usuario no encontrado.")
def editar_usuario(id_usuario):
# Verificar si el ID existe
if id_usuario in usuarios:
print("**Editar información del usuario:**")
# Solicitar nuevos valores
nombre = input("Ingrese el nuevo nombre: ")
apellidos = input("Ingrese los nuevos apellidos: ")
telefono = input("Ingrese el nuevo número de teléfono: ")
correo = input("Ingrese el nuevo correo electrónico: ")
# Actualizar información del usuario en el diccionario
usuarios[id_usuario] = {
"nombre": nombre,
"apellidos": apellidos,
"telefono": telefono,
"correo": correo
}
print("Información actualizada correctamente.")
else:
print("Error: ID de usuario no encontrado.")
def new_user():
"""
Function to create a new user.
"""
# Preguntar cuántos usuarios se quieren registrar
numero_usuarios = int(input("¿Cuántos usuarios desea registrar?: "))
# Registrar cada usuario
for i in range(numero_usuarios):
nombre = input("Ingrese el nombre del usuario: ")
apellidos = input("Ingrese los apellidos del usuario: ")
telefono = input("Ingrese el número de teléfono del usuario: ")
correo = input("Ingrese el correo electrónico del usuario: ")
# Registrar el usuario solo si la información es válida
if registrar_usuario(nombre, apellidos, telefono, correo, generate_id()):
print("Usuario creado correctamente.")
print("-" * 20)
def show_user(id_usuario):
"""
Function to display information of a user by ID.
"""
ver_informacion_usuario(id_usuario)
def edit_user(id_usuario):
"""
Function to edit information of a user by ID.
"""
editar_usuario(id_usuario)
def delete_user(id_usuario):
"""
Function to delete a user by ID.
"""
if id_usuario in usuarios:
del usuarios[id_usuario]
ids_usuarios.remove(id_usuario)
print("Usuario eliminado correctamente.")
else:
print("Error: ID de usuario no encontrado.")
def list_users():
"""
Function to list all user IDs.
"""
listar_usuarios()
def main():
"""
Main function to handle user interactions.
"""
global id_counter
id_counter = 0
while True:
print("\nMenú:")
print("A.- Registrar nuevos usuarios")
print("B.- Listar usuarios")
print("C.- Ver información de un usuario por ID")
print("D.- Editar información de un usuario por ID")
print("E.- Eliminar un usuario por ID")
print("F.- Mostrar información de un usuario por ID")
print("G.- Salir")
opcion = input("Seleccione una opción (A/B/C/D/E/F/G): ").upper()
if opcion == "A":
# Register new user
new_user()
elif opcion == "B":
# List users
list_users()
elif opcion == "C":
# Show user information by ID
id_usuario = int(input("Ingrese el ID del usuario: "))
show_user(id_usuario)
elif opcion == "D":
# Edit user information by ID
id_usuario = int(input("Ingrese el ID del usuario a editar: "))
edit_user(id_usuario)
elif opcion == "E":
# Delete user by ID
id_usuario = int(input("Ingrese el ID del usuario a eliminar: "))
delete_user(id_usuario)
elif opcion == "F":
# Show user information by ID
id_usuario = int(input("Ingrese el ID del usuario: "))
show_user(id_usuario)
elif opcion == "G":
# Exit the program
print("Saliendo del programa. ¡Hasta luego!")
break
else:
print("Opción no válida. Por favor, elija una opción válida.")
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment