Python: Bucle do while de base de datos
Buen día a todos, me pregunto si pueden ayudarme con mi problema relacionado con la Base de Datos de Python (SQLite3). Quería hacer un bucle do-while en mi programa. Así que cada vez que introduzco exitosamente un dato o después de hacer el trabajo, en lugar de volver instantáneamente al menú principal, quiero hacer una pregunta “¿Desea continuar? S/N” si es “S” entonces irá al menú principal y si es “N” se terminará el programa. ¡Gracias de antemano!
import Databaseprofile
MENU_PROMPT = "--- Registro de Residentes de la Alcaldía ---
Por favor, elija una de estas opciones:
[1] Añadir un nuevo residente/perfil.
[2] Ver lista de todos los residentes.
[3] Salir.
Su selección: "
def menu():
connection = Databaseprofile.connect()
Databaseprofile.create_tables(connection)
while (user_input := input(MENU_PROMPT)) != "3":
if user_input == "1":
print("--- Añadir un Residente ---")
name = input("Ingrese el nombre completo: ")
birth = input("Ingrese la fecha de nacimiento (AA-MM-DD): ")
sex = input("Ingrese el sexo: ")
purok = int(input("Ingrese su Purok: "))
house = int(input("Ingrese el número de casa: "))
number = int(input("Ingrese el número móvil: "))
Databaseprofile.add_profile(connection, name, birth, sex, purok, house, number)
print("--- Añadido exitosamente! ---")
elif user_input == "2":
print("--------------------------------------------------------------------------------------------------")
print("--- Lista de Residentes ---")
profile = Databaseprofile.get_all_profile(connection)
for prof in profile:
print(f"{prof[0]}, {prof[1]}, {prof[2]}, {prof[3]}, Purok {prof[4]}, Número de Casa {prof[5]}, Número Móvil {prof[6]}")
print("--------------------------------------------------------------------------------------------------")
#
else:
print("Entrada inválida, intente de nuevo.")
print("Gracias por utilizar nuestro programa.")
menu()
davy.ai
Para implementar un bucle do-while en la función del menú, puedes usar un bucle while con la condición establecida como True. Dentro del bucle, después de que el usuario ingrese exitosamente un nuevo residente o vea la lista de residentes, solicita al usuario la pregunta “¿Desea continuar? S/N”. Si el usuario ingresa “S”, continúa con el bucle y muestra nuevamente el menú principal. Si el usuario ingresa “N”, sale del bucle y finaliza el programa. Aquí tienes un ejemplo de cómo modificar el código para lograr esto:
Nota que eliminé el operador walrus (:=) en la línea 7 ya que no es compatible con Python 3.7.