Mensajes: 155
Temas: 57
Registro en: Jan 2018
Reputación:
0
06-10-2021, 07:34 PM
(Última modificación: 07-10-2021, 01:08 AM por Francisco.)
Hola Francisco, buen resto de Miércoles para todos.-
Te explico lo que no puedo lograr, lo que quiero hacer es como una base de datos de clientes(luego aprenderé a
guardar los datos en un .TXT y extraerlos).-
algo como esto: clientes = {1 : ['Daniel Virgili', 'Belgrano 2179', 'Arequito', '471089']}
Algo como una lista dentro de un diccionario, ¿me podes guiar?
Código: clientes = {}
continuar = True
codigo = 0
while continuar:
codigo += 1
clave = str(codigo) + ' : '
nombre = input("\n Ingrese el nonbre del cliente..: ")
clientes[codigo] = nombre
calle = input(" Ingrece la calle del cliente...: ")
clientes[codigo] + ',' + calle
continuar = input('¿Quieres añadir más información (Si/No)? ') == "Si"
print(clientes)
Miestras tanto seguire practicando.
Saludos 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.-
Mensajes: 155
Temas: 57
Registro en: Jan 2018
Reputación:
0
07-10-2021, 10:44 AM
(Última modificación: 07-10-2021, 12:41 PM por Francisco.)
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: clientes = {}
continuar = True
codigo = 0
while continuar:
codigo += 1
clave = str(codigo) #+ ' : '
nombre = input("\n Ingrese el nonbre del cliente.....: ")
calle = input(" Ingrece la dirección del cliente..: ")
ciudad = input(" Ingrece la ciudad del cliente.....: ")
clientes[clave] = [nombre, calle, ciudad]
continuar = input('\n¿Quieres añadir más información (Si/No)? ') == "Si"
for i in clientes.items():
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.-
Mensajes: 1.300
Temas: 3
Registro en: Feb 2016
Reputación:
71
07-10-2021, 12:48 PM
(Última modificación: 07-10-2021, 12:48 PM por Francisco.)
Hola, Daniel.
Está muy bien como lo implementaste. Si la clave de cada cliente es un número, no veo necesidad de convertirla a una cadena vía str(). Para imprimir la información de cada cliente (que es una lista) sin corchetes:
Código: for cliente in clientes.values():
print(", ".join(cliente))
Usando clientes.values() podés recorrer únicamente los valores del diccionario. Si también necesitás las claves, entonces deberías hacer:
Código: for codigo, cliente in clientes.items():
print(f"Información del cliente número {codigo}: ", ", ".join(cliente))
Sobre la "f" al principio de la cadena te dejo este artículo: https://recursospython.com/guias-y-manua...e-cadenas/.
En cuanto a guardar el diccionario de clientes en un archivo y luego cargarlo al inicio, te recomiendo que uses el módulo pickle, que es una forma estándar de guardar objetos de Python: https://recursospython.com/guias-y-manua...e-objetos/.
Saludos
Mensajes: 155
Temas: 57
Registro en: Jan 2018
Reputación:
0
Gracias Francisco, de maravilla, a continuación te muestro como lo imprimo con format.-
En cuanto a la clave me daba un error, algo como que no podía ser una variable int, baya a saber con tanto
practicar(errores) que habré puesto.-
Para finalizar con esto te pido una manito mas, ¿como hago para imprimir la calve? si ya tengo {0[0]} que da el
nombre, no se como hacer.-
Código cliente..: 1 <------ esto es lo que no logro
Cliente.............: Roberto Daniel Virgili
Dirección.........: Ber. E. Lopez 2179
Ciudad............: Arequito
=========================================================
for codigo, cliente in clientes.items():
print("\n Cliente....: {0[0]}\n Dirección..: {0[1]}\n Ciudad.....: {0[2]}".format(cliente))
print("----------------------------------")
=========================================================
Saludos y 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.-
Mensajes: 1.300
Temas: 3
Registro en: Feb 2016
Reputación:
71
De nada, Daniel.
Seguramente lo que arrojaba error de tipos era esto:
Código: clave = str(codigo) + ' : '
Si sacás el str(), tira error porque no se puede concatenar un número con una cadena. Pero de cualquier manera esa concatenación (sumarle los dos puntos) no es necesaria, así que podés usar directamente la clave como número:
En cuanto a lo segundo, si hacés "for codigo, cliente in clientes.items()", la clave del diccionario la tendrías en "codigo". Usando format() sería algo así:
Código: for codigo, cliente in clientes.items():
print("
Cliente.... {1}: {0[0]}
Dirección..: {0[1]}
Ciudad.....: {0[2]}".format(cliente, codigo))
El problema es que format() es bastante poco legible en estos casos. Mirá cuanto mejor queda así:
Código: for codigo, cliente in clientes.items():
print(f"
Cliente.... {codigo}: {cliente[0]}
Dirección..: {cliente[1]}
Ciudad.....: {cliente[2]}")
También podés asignar cliente[0], cliente[1], etc. a variables dentro del bucle para que quede más legible.
Saludos
Mensajes: 155
Temas: 57
Registro en: Jan 2018
Reputación:
0
Lo del error es lo que vos decís.-
En cuanto a la última línea de código:
Cita:También podes asignar cliente[0], cliente[1], etc. a variables dentro del bucle para que quede más legible.
Megusto esa manera y la aplique.
Si tenes paciencia, nos estamos leyendo, saludos.-
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.-
|