Estoy tratando de aprender Python haciendo.

Objetivo del código a continuación: Para formar parte de un archivo más grande en el que comprobaré si toda la información, es decir, Dirección, correo electrónico, persona de contacto, etc. está actualizada en una lista (no estoy seguro de si usar listas, matrices o diccionarios ?) Si es así, quiero que le dé opciones para hacer varias cosas para el cliente, etc.

El código a continuación básicamente verifica si existe un cliente en la lista. De lo contrario, se supone que debe agregar el nombre del cliente en c a la lista.

Cuando ejecuto el programa funciona. Pero tan pronto como reinicio el programa, el último agregado, es decir, si ingresé al cliente como: ABC en la última ejecución del programa, no está en la lista.

¿Alguien puede señalarme en la dirección correcta en esto? ¿También puedo pasar los valores de la lista a múltiples diccionarios como claves para agregar más valores, es decir, dirección de correo electrónico, etc.?

customer = ['GMS']
print ("Enter Customer Name:")
c = input()
if c in customer:
    print ("Customer Exsists")

else:
    customer.append(c)
    print ("Added to list")
2
Sid 14 ene. 2017 a las 14:41

3 respuestas

La mejor respuesta

Su programa está bien hasta donde llega. Ingresa y se agrega a la lista.

Sin embargo, todos los datos en el programa desaparecerán tan pronto como el programa salidas La única forma de retener información entre ejecuciones es guardar el información en algún tipo de almacenamiento persistente. Como menciona Rok Novosel en el comentario, esto se puede hacer con el módulo pickle, aunque como principiante, es posible que desee diferir eso hasta más tarde.

En esta etapa de su aprendizaje, recomendaría mirar el archivo operaciones: apertura y cierre, lectura y escritura. Para una sola lista así, los métodos de archivo writelines() y readlines() serían La forma más sencilla de guardar y restaurar, respectivamente.

En cuanto a su pregunta del diccionario: sí, ya que se está asegurando de que Los nombres de los clientes son únicos, puede usarlos como claves de diccionario. Almacenamiento esos datos serían más complicados; puedes usar pickle o hacer ejercicio una estructura de archivos para analizar en la entrada.

2
Tom Zych 14 ene. 2017 a las 11:55

Q1: Sus datos residen en memory durante una instancia de ejecución. Cuando el programa sale, memory se libera y sus datos no se almacenan automáticamente en otro lugar. Puede usar el formato que desee para almacenarlo en disk donde los datos son persistentes. Simplemente escribir en un archivo podría funcionar para usted en este momento de su aprendizaje.

P2: Sí, puedes usar un diccionario.

2
hpwsue 14 ene. 2017 a las 11:52

Abrir archivo y leerlo en la lista

with open('file', 'r') as f:
    customers = list(f)
    f.close()

Haz lo que quieras enumerar. Luego escriba al archivo. Para persistir a los clientes en HDD.

with open('file', 'w') as f:
    for l in f:
        f.write(str(l) + '\n')
    f.close()
0
zxxz 14 ene. 2017 a las 12:11