Forum >> Principianti >> Salvare dizionario

Pagina: 1

Ciao a tutti. Sto facendo un piccolo programma, devo salvare dei nomi a giungere i loro punteggi. Vorrei salvarli in una cartella come dizionario. Ho provato con piccole però mi fa salvare solo i numeri. Come posso salvare come dizionario. Grazie
Ciao caro, visto che non ho capito benissimo la tua domanda e potrei aver frainteso quello che chiedi, posta un po' di codice e ci ragioniamo insieme.

Inoltre ricorda sempre di indicare su cosa ti muovi: versione del linguaggio, piattaforma, etc....

Cya
ok scusa. Sono proprio alle prime armi, mi sto documentando ma mi blocco.

Io uso python 2.7. quello che voglio fare è un piccolo programma che ha un elenco di persone con i loro punteggi.

Inizia chiedendo cosa vuole fare, 1) cancellare nome 2) aggiungere nome con il suo punteggio 3) controllare il nome con il suo punteggio 4) salvare.

avevo pensato di salvare il tutto in una cartella gia creata.

Non so quali codici usare? scusate e ciao
Se inizi da zero spaccato, io ti consiglierei di iniziare alla versione 3.x del linguaggio, non dalla 2.x.

Inizia chiedendo cosa vuole fare, 1) cancellare nome 2) aggiungere nome con il suo punteggio 3) controllare il nome con il suo punteggio 4) salvare.

Immagina di avere un dizionario del genere:
>>> d
{'Daniele':7, 'Gabecon':1000, 'Carlo':2000}

>>> d["Gundam"] = 10000 #Aggiungiamo Gundam con valore 10000

>>> d
{'Gundam': 10000, 'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}

>>> d["Gundam"] #Controlliamo solo Gundam
10000

>>> d["Gundam"] = 20000 #Modifichiamo Gundam a 20000

>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000, 'Gundam': 20000}

>>> del d["Gundam"] #Togliamo Gundam

>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}

Ora viene l'incomprensibile, per me, della tua domanda.

avevo pensato di salvare il tutto in una cartella gia creata.

Vuoi salvare il dizionario creato in un file in una specifica cartella? Spiegami questo perché non ho capito.

Non so quali codici usare? scusate e ciao

Devi, non dovresti e non potresti, ma devi scrivere codice. Per imparare devi scrivere con le tue sante manine del codice. Prenditi una guida e segui quella, fai tante prove e vedrai che l'esperienza arriva.

Cya
Innanzitutto grazie mille. Spero di essere più comprensibile adesso.

Il mio programma dovrebbe chiedermi cosa voglio fare inserire nome cambiare ecc. ecc. A me interessa che io non perde mai quei dati, che vengano salvati così che io possa riprenderli e aggiornarlo senza perdere quei dati una volta spento il computer.

Mi stavo comportando così:

x=open("gioco.txt","r")

prova=x.readlines()

print ("1. Aggiungere nome con punteggio")

print ("2. Cancellare nome")

print ("3. Modificare punteggio")




a=raw_input("Cosa vuoi fare?...")

if a=1:

y=raw_input("Quale nome inserire?")
x["mario rossi"]

E' un mezzo disastro lo so, ma mi sto impegnando ;)


Il problema è che mi da sempre errore.

Spero di essere stato un pochino più chiaro.

Grazie



--- Ultima modifica di gabecon in data 2016-05-20 18:20:54 ---
Il mio programma dovrebbe chiedermi cosa voglio fare inserire nome cambiare ecc. ecc. A me interessa che io non perde mai quei dati, che vengano salvati così che io possa riprenderli e aggiornarlo senza perdere quei dati una volta spento il computer.
Ora ho capito che vuoi fare, ci ero vicino.

x=open("gioco.txt","r")

Potresti (dovresti) usare with quando fai operazioni sui file.

prova=x.readlines()

print ("1. Aggiungere nome con punteggio")
print ("2. Cancellare nome")
print ("3. Modificare punteggio")

a=raw_input("Cosa vuoi fare?...")

if a=1:

Qui stai sbagliando due cose, tralasciando tutte le possibile eccezioni che potrebbero verificarsi (ci arriverai con calma):

1. Dovresti scrivere if a == 1: per verificare che tipo di risposta hai ottenuto.

2. Ma anche così non andrebbe, visto che raw_input() restituisce una stringa. Il risultato sperato lo ottieni sei confronti int(a) a 1 oppure confrontando il risultato con una stringa "1" o str(1).
>>> a == 1
False

>>> str(a) == 1
True

>>> a == str(1) #Equivale a "1"
True

E' un mezzo disastro lo so, ma mi sto impegnando ;)

L'impegno è la base del successo.

Forse ti conviene seguire ancora un po' le varie guide prima di avventurarti in cose che conosci davvero poco in questo momento.

Il problema è che mi da sempre errore.

Ricorda che devi sempre postare l'errore per permettere all'interlocutore di darti una mano. Inoltre quando posti il codice, devi usare il tasto per una corretta formattazione del testo.

Cya
Grazie. Vuol dire che continuerò a studiare. Mi sembrava un Po più facile.
È che il programma va quasi bene piano piano ci arrivavo, solo che non so come salvare il nome del giocatore con il suo punteggio in una cartella. Sarebbe uguale a salvare una rubrica e tramite il programma che avrei fatto vedere il nome e il numero.

Comunque grazie
È che il programma va quasi bene piano piano ci arrivavo, solo che non so come salvare il nome del giocatore con il suo punteggio in una cartella. Sarebbe uguale a salvare una rubrica e tramite il programma che avrei fatto vedere il nome e il numero.
Salvare un dizionario in un file non è complicato, puoi farlo senza grossi problemi, mi sembra solo che tu abbia bisogno di un po' di esperienza maggiore. Comunque partendo sempre dagli esempi sopra, vogliamo salvare il tuo dizionario in un file che chiameremo punteggi.txt. Puoi salvarlo come ti pare, io uso il JSON ad esempio:
>>> d
{'Carlo': 2000, 'Daniele': 7, 'Gabecon': 1000}

>>> type(d)
dict

>>> d['Gundam'] = 10000

>>> import json

>>> with open("/path/di/punteggi.txt","w") as f:
        json.dump(d,f)

>>> f.closed
True

>>> with open("/path/di/punteggi.txt", "r") as f:
        d = json.load(f)

>>> f.closed
True

>>> d
{u'Carlo': 2000, u'Daniele': 7, u'Gabecon': 1000, u'Gundam': 10000}

>>> type(d)
dict

Spero ti sia d'aiuto.
Cya
Grazie sei stato molto gentile. A questo punto mi puoi consigliare un buon libro per impare python.
A questo punto mi puoi consigliare un buon libro per impare python.
Esistono molte risorse disponibili, sia in italiano che in inglese, sia digitali che in forma cartacea, dipende un po' dal tuo approccio. Provo a scremarti un po' la lista e suggerirti quelli che, secondo il mio modesto parere, sono ottimi per iniziare ed anche crescere col nostro linguaggio preferito.

Libri cartacei (Italiano)
Python di Marco Beri [Guida tascabile, ottima per immergerti subito nel linguaggio]
Imparare Python di Mark Lutz [La storia dell'insegnamento di Python]
Programmare con Python - Guida completa di Marco Buttu [Ottimo testo]
Programmare in Python di Kenneth A. Lambert

Libri digitali (Italiano)

Pensare in Python di Allen B. Downey
Immersione in Python 3 di Mark Pilgrim

Libri cartacei (Inglese)
Nota: Ovviamente esistono molte delle versioni elencate in italiano.
Learning Python 5th edition di Mark Lutz [Versione aggiornata di Imparare Python]
Python Cookbook di David Beazley e Brian K. Jones [Fuori concorso perché non è una guida per principianti, ma è essenziale su ogni scrivania di un programmatore Python]

Libri digitali (Inglese)
Learn Python the Hard Way di Zed Shaw [Video e tutorial, con risorse anche a pagamento]
Think Python di Allen B. Downey
Invent with Python di Albert Sweigart [Non solo un libro, ma ben quattro]

A presto.
Daniele


Pagina: 1



Esegui il login per scrivere una risposta.