Autor Tema: Incluir una lista dentro de un diccionario utilizando el teclado.  (Leído 2181 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Incluir una lista dentro de un diccionario utilizando el teclado.
« en: 06 de Octubre de 2021, 19:02:13 »
Hola gente, buen resto de Miércoles para todos.-
Le explico lo que quiero hacer, es como una base de datos de clientes(luego aprenderé a guardar los datos en un .TXT y extraerlo).-
algo como esto: clientes = {1 : ['Daniel Virgili', 'Belgrano 2179', 'Arequito', '471089']}
Algo como una lista dentro de un diccionario, ¿me podrían guiar/ayudar?.-
Soy muy nuevo en python, tengo 70 años, un poquito de paciencia :) :) :), gracias.- 

Código: Python
  1. clientes = {}
  2. continuar = True
  3. codigo = 0
  4.  
  5. while continuar:
  6.     codigo += 1
  7.     clave = str(codigo) + ' : '
  8.     nombre = input("\n Ingrese el nonbre del cliente..: ")
  9.     clientes[codigo] = nombre
  10.     calle = input(" Ingrece la calle del cliente...: ")
  11.     clientes[codigo] + ',' + calle
  12.  
  13.     continuar = input('¿Quieres añadir más información (Si/No)? ') == "Si"
  14.    
  15.     print(clientes)

Saludos y desde ya gracias, Daniel
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #1 en: 07 de Octubre de 2021, 09:40:09 »
Hola gente, buen Jueves para todos.-
Bueno algo conseguí, ahora pido ayuda con 2 cosas, la primera que me corrijan y me digan que otra manera existe(mas eficiente) para lograr lo mismo y lo que me falta es que alguien me oriente con el print para que salga sin corchetes, paréntesis etc.
Conozco join y sep pero no me funcionan.-
Desde ya gracias x el tiempo que le dediquen, gracias y saludos, Daniel

Código: Python
  1. clientes = {}
  2. continuar = True
  3. codigo = 0
  4.  
  5. while continuar:
  6.     codigo += 1
  7.     clave = str(codigo) #+ ' : '
  8.     nombre = input("\n Ingrese el nonbre del cliente.....: ")
  9.     calle = input(" Ingrece la dirección del cliente..: ")
  10.     ciudad = input(" Ingrece la ciudad del cliente.....: ")
  11.  
  12.     clientes[clave] = [nombre, calle, ciudad]
  13.  
  14.     continuar = input('\n¿Quieres añadir más información (Si/No)? ') == "Si"
  15.    
  16. for i in clientes.items():
  17.     print(i)
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #2 en: 07 de Octubre de 2021, 16:02:12 »
A ver si esto te viene bien.

Código: Python
  1. clientes = {}
  2. index = 1
  3.  
  4. while True:
  5.     print('\n')
  6.     nombre = input(" Ingrese el nonbre del cliente.....: ")
  7.     calle =  input(" Ingrese la dirección del cliente..: ")
  8.     ciudad = input(" Ingrese la ciudad del cliente.....: ")
  9.     clientes[index] = [nombre, calle, ciudad]
  10.     index += 1
  11.  
  12.     continuar = input('\n¿Quieres añadir más información (Si/No)? ').lower() in ['s', 'si']
  13.     if not continuar:
  14.         break
  15.    
  16. for index, data in clientes.items():
  17.     print('Indice: ', index)
  18.     print(' Nombre...: %s' % data[0])
  19.     print(' Dirección: %s' % data[1])
  20.     print(' Ciudad...: %s' % data[2])

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #3 en: 07 de Octubre de 2021, 18:08:00 »
Gracias Picuino, me viene muy bien, funciona como imaginaba/esperaba, muchas gracias.-  ((:-)) ((:-)) ((:-))
abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #4 en: 08 de Octubre de 2021, 02:03:39 »
Me ha llamado la atención una cosa, Picuino.

Has cambiado esta parte del código original:

Código: Python
  1. while continuar:
  2. ...
  3.     continuar = input('\n¿Quieres añadir más información (Si/No)? ') == "Si"

por esta otra:
Código: Python
  1. while True:
  2. ...
  3.     continuar = input('\n¿Quieres añadir más información (Si/No)? ').lower() in ['s', 'si']
  4.     if not continuar:
  5.         break

Desde mi punto de vista queda más claro de la primera. ¿Cuál es el motivo del cambio?

Desconectado Picuino

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5892
    • Picuino
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #5 en: 08 de Octubre de 2021, 06:22:06 »
No sabría decirte, igual tienes razón y queda mejor la primera.

Edito:
La ventaja del cambio es que no hay que inicializar la variable fuera del bucle.
Así a la variable se le asigna un valor y se utiliza a continuación, no está dispersa en líneas separadas y fuera del bucle.
En realidad se podría incluso quitar del todo.
En principio los bucles DO .... WHILE yo los emulo siempre con un while True ..... if ... break
Pero insisto, no tengo claro que sea mejor solución.


Una discusión sobre eso: https://es.stackoverflow.com/questions/139701/como-emular-el-ciclo-do-while-en-python
« Última modificación: 08 de Octubre de 2021, 06:31:37 por Picuino »

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18310
    • MicroPIC
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #6 en: 08 de Octubre de 2021, 12:15:36 »
Sí, al final es cuestión de gustos. Operativamente es igual de eficaz una solución que otra.

Desconectado Daniel1952

  • PIC16
  • ***
  • Mensajes: 127
Re:Incluir una lista dentro de un diccionario utilizando el teclado.
« Respuesta #7 en: 08 de Octubre de 2021, 12:58:53 »
Hola gente, ¿como están? les deseo a todos un bello Viernes.-
Ya que están con el tema de los bucles, les hago esta consulta,
¿porque el break funciona correctamente si no respeta el correspondiente
indentado del while?, creí que el bucle iba a ser infinito pero lo probé y funciona.-
Desde ya gracias, abrazo.

Código: Python
  1. lista = []
  2.  
  3. print("\n Ingrese la cantidad de números que desee sumar: ")
  4. print("--- Ingrese cualquier letra para finalizar ---")
  5. while True:
  6.     try:
  7.         num = float(input(" Ingrese número...: "))        
  8.         lista.append(num)
  9.     except ValueError:
  10.         break
  11.  
  12. print("")
  13. for elemento in lista:
  14.     print(f"{elemento:10}")
  15.  
  16. print("  --------")
  17. print(f"{sum(lista):10}")

abraza las cosas y personas malas como si fueran tu mas preciada joya,Son tus mas grandes maestros de paciencia sabiduría y amor y cuando lo abrazas dejan de causar dolor.-