Domanda Dati in python... Consigli?

Cracra

Utente Iron
8 Marzo 2022
17
4
0
5
Ciao a tutti, sono un nabbo che sta cercando d'imparare il linguaggio di python.
Premessa: scusate se non parlo nei modi più tecnici, ma ancora non so praticamente niente!
Questa mattina ho creato il mio primo codice in modo autonomo senza aiuti, però non so che comandi devo fare, mi informo su internet qua e là, anche perché non ho 54 euro da spendere per un libro, e ora come ora non credo che lo capirei.

Dunque, ho creato uno script che mi permette di simulare in modo basilare un bancomat.
Solo che quando chiudo la macchina i soldi e tutti i dati si resettano, come potrei fare per salvarli e mantenerli ogni volta?
Es: deposito 15 euro e il mio saldo arriva a 30, ma se chiudo e riapro il mio saldo torna a 0

Ps: scusate ancora se non uso termini tecnici, e scusate per la domanda che può sembrar banale ma non riesco a trovare un modo..

Questo è il mio codice
Python:
saldo = int(0)

while 1:
    print ("cosa vuoi fare?")
    Print ("\npremi 1 per depositare")
    Print ("premi 2 per ritirare")
    azione = int(input())
    if azione == 1:
        print ("quanto vuoi depositare?")
        dep = int(input())
        saldo += dep
    else:
       print ("quanto vuoi ritirare?")
       rit = int(input())
       saldo -= rit
print ("!ORA IL TUO SALDO È DI:")
print ("-->" +str(saldo)+"€"+"<---")

Accetto anche altri consigli e comandi!
Proprio per imparere.
Grazie in anticipo 🤝
 
Ciao!
Invece di un libro, se non vuoi spendere, ci sono centinaia di corsi che puoi seguire, anche su YouTube o, meglio, leggere la doc gratuita di python qui per esempio: https://docs.python.org/3/tutorial/index.html

Detto questo, quando avvii il tuo script, i dati sono salvate in variabili che, una volta fermato lo stesso script, smetteranno di esistere.
Per far si' che i dati rimangano da un avvio all'altro, dovresti salvarli in un file per esempio. Ti consiglio, per iniziare, di guardare l'estensione di file .json e studiare come salvare i dati li' con python
 
Il saldo si resetta perché i risultati vanno salvati su un file, ti elenco varie istruzioni che puoi utilizzare:
Python:
saldo = open("percorsofile", "w") #ACCEDI AL FILE IN MODALITA' SCRITTURA, ATTENZIONE PERCHE' QUESTO RESETTA IL CONTENUTO CHE C'ERA PRIMA
saldo.write("scrivo qui il contenuto") #SCRIVO SUL FILE
saldo = open("percorsofile", "a") #ACCEDI AL FILE AGGIUNGENDO AL CONTENUTO GIA' ESISTENTE
saldo = open("percorsofile", "r") #ACCEDI AL FILE IN MODALITA' LETTURA
saldo.close() #CHIUDO IL FILE DOPO AVER SVOLTO OPERAZIONI SU DI ESSO, E' IMPORTANTE PER EVITARE SPRECO DI MEMORIA
 
Ciao!
Invece di un libro, se non vuoi spendere, ci sono centinaia di corsi che puoi seguire, anche su YouTube o, meglio, leggere la doc gratuita di python qui per esempio: https://docs.python.org/3/tutorial/index.html

Detto questo, quando avvii il tuo script, i dati sono salvate in variabili che, una volta fermato lo stesso script, smetteranno di esistere.
Per far si' che i dati rimangano da un avvio all'altro, dovresti salvarli in un file per esempio. Ti consiglio, per iniziare, di guardare l'estensione di file .json e studiare come salvare i dati li' con python
Va bene, grazie
Messaggio unito automaticamente:

Il saldo si resetta perché i risultati vanno salvati su un file, ti elenco varie istruzioni che puoi utilizzare:
Python:
saldo = open("percorsofile", "w") #ACCEDI AL FILE IN MODALITA' SCRITTURA, ATTENZIONE PERCHE' QUESTO RESETTA IL CONTENUTO CHE C'ERA PRIMA
saldo.write("scrivo qui il contenuto") #SCRIVO SUL FILE
saldo = open("percorsofile", "a") #ACCEDI AL FILE AGGIUNGENDO AL CONTENUTO GIA' ESISTENTE
saldo = open("percorsofile", "r") #ACCEDI AL FILE IN MODALITA' LETTURA
saldo.close() #CHIUDO IL FILE DOPO AVER SVOLTO OPERAZIONI SU DI ESSO, E' IMPORTANTE PER EVITARE SPRECO DI MEMORIA
Non credo di aver capito bene 😔.
Il file deve essere txt? E in "scrivo qui il contenuto" cosa dovrei scrivere?
Hai anche scritto che dopo il primo open, il file di resetta.
Sono tutti comandi per il mio caso o comandi che potrebbero servirmi in futuro?
Grazie dell'aiuto
 
Ultima modifica:
Va bene, grazie
Messaggio unito automaticamente:


Non credo di aver capito bene 😔.
Il file deve essere txt? E in "scrivo qui il contenuto" cosa dovrei scrivere?
Hai anche scritto che dopo il primo open, il file di resetta.
Sono tutti comandi per il mio caso o comandi che potrebbero servirmi in futuro?
Grazie dell'aiuto
Il file deve essere txt. Non ti ho scritto il programma, ho scritto alcuni comandi che ti serviranno per scrivere il programma. Il file si resetta ogni volta che lo apri in modalità scrittura ( "w"). Ti linko una guida sui file così potrai capire quello che sto dicendo e riuscirai a realizzare il programma:
 
Non per forza txt, puoi utilizzare vari file di variee estensioni (come ,csv per esempio, ovvero il formato dei file di excel)
O anche n file senza estensione
 
@Cracra Per qualsiasi dubbio sentiti libero di scrivere qui su IF :D (Sei riuscito intanto a ritrovare il dato che ti serve dopo ogni avvio?)
@CrazyMonk Tranquillo, ci mancherebbe!
Non ho ancora provato, ma suppongo che al posto di saldo= int(0) dovrei mettere saldo=open("file.txt", "a").
Ma non mi torna una cosa, dopo il saldo deve salvarsi nel file, quindi deve scriverci dentro, come?
Nel mio caso la variabile iniziale deve essere..
Python:
saldo = open("file.txt","a")
#o
saldo = int(open("file.txt,"a"))
#?
Messaggio unito automaticamente:

Oppure devo inserire 2 variabili?
Es:
Python:
saldo = open("file.txt", "a")
saldo = int(saldo)
 
In codice, se non erro, e' cosi':

Python:
saldo = 50 #la tua variabile saldo, il valore ovviamente lo scegli tu in base a cosa ti serve
with open('file', 'w+') as fp: #apriamo il file in scrittura (creandolo se non esiste)
    fp.write(saldo) #scriviamo la variabile su file
    #se non erro non occorre chiudere il file se usiamo 'with'

#per leggere il file:
with open("file", "r+") as fp: #apriamo il file in lettura (creandolo se non esiste)
    contenuto = fp.read() # se vuoi leggerlo tutto, altrimenti guarda le funzioni readline, readlines ecc
    
#nel momento in cui vuoi scrivere su fil, ma non cancellando il contenuto gia' inserito
#invece di 'w+' usa 'a+'
 
Non ho ancora provato, ma suppongo che al posto di saldo= int(0) dovrei mettere saldo=open("file.txt", "a").
Ma non mi torna una cosa, dopo il saldo deve salvarsi nel file, quindi deve scriverci dentro, come?
Nel mio caso la variabile iniziale deve essere..
Python:
saldo = open("file.txt","a")
#o
saldo = int(open("file.txt,"a"))
#?
Messaggio unito automaticamente:

Oppure devo inserire 2 variabili?
Es:
Python:
saldo = open("file.txt", "a")
saldo = int(saldo)
Pare che tu debba ancora fare un pò di pratica prima di faticare su problemi più complessi, ti consiglio di prenderti un video corso su Udemy visto che appena iscritto (e anche dopo, a fasi alterne) avrai uno sconto del 90% su i prezzi, tanto che un corso per principianti per python ti costerà 10€. Penso che sia una cifra più che sostenibile, considerando i soldi che poi puoi guadagnare da programmatore quando avrai fatto la tua esperienza. Udemy lo consiglio molto per chi come te è all'entry point, ovvero deve iniziare a conoscere l'argomento. Per specializzarsi però non è affatto adatto, qualunque corso anche quello denominato "Corso per esperti" di solito è un corso per principianti. Tuttavia nel tuo caso trovo sia davvero un' opzione da prendere in considerazione.
Occhio a sceglierne uno con lingua italiana, tranne che tu non conosca bene l'inglese in questo caso allora meglio ancora se lo prendi in inglese.
 
Pare che tu debba ancora fare un pò di pratica prima di faticare su problemi più complessi, ti consiglio di prenderti un video corso su Udemy visto che appena iscritto (e anche dopo, a fasi alterne) avrai uno sconto del 90% su i prezzi, tanto che un corso per principianti per python ti costerà 10€. Penso che sia una cifra più che sostenibile, considerando i soldi che poi puoi guadagnare da programmatore quando avrai fatto la tua esperienza. Udemy lo consiglio molto per chi come te è all'entry point, ovvero deve iniziare a conoscere l'argomento. Per specializzarsi però non è affatto adatto, qualunque corso anche quello denominato "Corso per esperti" di solito è un corso per principianti. Tuttavia nel tuo caso trovo sia davvero un' opzione da prendere in considerazione.
Occhio a sceglierne uno con lingua italiana, tranne che tu non conosca bene l'inglese in questo caso allora meglio ancora se lo prendi in inglese.
Il mio problema (uno dei motivi per cui non compro il libro) è che online non ho soldi.
Ho solo una PayPal che non posso ricaricare senza carta (che non ho, essendo minorenne).
Se ci fosse un modo per ricaricare PayPal magari con credito telefonico o qualcosa di simile che non riguardi la banca, sicuramente avrei già comprato tanti strumenti per informarmi...
Ps: no, non posso utilizzare la carta dei miei genitori
 
Il mio problema (uno dei motivi per cui non compro il libro) è che online non ho soldi.
Ho solo una PayPal che non posso ricaricare senza carta (che non ho, essendo minorenne).
Se ci fosse un modo per ricaricare PayPal magari con credito telefonico o qualcosa di simile che non riguardi la banca, sicuramente avrei già comprato tanti strumenti per informarmi...
Ps: no, non posso utilizzare la carta dei miei genitori


Vedi: https://www.youtube.com/watch?v=8zlTWxga6F8

Primo risultato trovato
Man mano che studi prova sempre ad applicare quello che studi con progetti tuoi, in modo che possa rimanere tutto piu' impresso
Al giorno d'oggi non e' obbligatorio spendere soldi per imparare, ed e' una gran fortuna
 
Ultima modifica:


Vedi: https://www.youtube.com/watch?v=8zlTWxga6F8

Primo risultato trovato
Man mano che studi prova sempre ad applicare quello che studi con progetti tuoi, in modo che possa rimanere tutto piu' impresso
Al giorno d'oggi non e' obbligatorio spendere soldi per imparare, ed e' una gran fortuna

Non è indispensabile pagare, ma se lo fai quasi sempre ottieni cose molto molto migliori delle robe free. Un corso su Udemy per 10€ ti da 20 ore di corso non 2, ad esempio. Ad ogni sezione del corso trovi nella sezione "Materiale" la roba da scaricare collegata alla sezione del corso (spesso ci sono dei rar contenenti parti del progetto pronte, che puoi testare sul tuo pc). In molti corsi a fine capitolo c'è il quiz di fine capitolo, che ti aiuta a verificare che tu abbia imparato, eccetera. Poi se l'utente non ha modo di acquistarlo allora può anche provare con la roba gratuita in giro.

Anche se sei minorenne probabilmente puoi aprire comunque una postepay (standard, non evolution) che ti fa fare acquisti online e che puoi ricaricare dal tabacchi.

Potessi tornare indietro probabilmente acquisterei una montagna di corsi del genere, ti danno un infarinatura minima per iniziare a comprendere l'argomento e quindi ti ritrovi col resto del percorso in discesa, purtroppo ai miei tempi udemy ancora non esisteva e i corsi erano ben più costosi di 10€.
 
Non è indispensabile pagare, ma se lo fai quasi sempre ottieni cose molto molto migliori delle robe free. Un corso su Udemy per 10€ ti da 20 ore di corso non 2, ad esempio. Ad ogni sezione del corso trovi nella sezione "Materiale" la roba da scaricare collegata alla sezione del corso (spesso ci sono dei rar contenti parti del progetto pronte, che puoi testare sul tuo pc). In molti corsi a fine capitolo c'è il quiz di fine capitolo, che ti aiuta a verificare che tu abbia imparato, eccetera. Poi se l'utente non ha modo di acquistarlo allora può anche provare con la roba gratuita in giro.
Non so darti la mia opinione perche' non ho mai comprato corsi, ma mi fido
Anche se doc python + github + un'idea + google e ho sempre trovato tutto :D
 
  • Mi piace
Reazioni: --- Ra ---
Non so darti la mia opinione perche' non ho mai comprato corsi, ma mi fido
Anche se doc python + github + un'idea + google e ho sempre trovato tutto :D
Io l'ho usato per imparare a lavorare su UE4, per ripassare un pò di web development, e rafforzare un pò le conoscenze sull'assembly.
Come ho detto non si diventa Programmatori Senior per Google seguendo corsi Udemy, però sicuramente ti danno un boost iniziale nel comprendere un argomento che puoi sfruttare per poi tuffarti con basi solide nell'apprendimento attraverso libri e quant'altro.

Stiamo andando abbastanza OT mi scuso, però penso che se stessi iniziando ora a programmare vorrei tanto che qualcuno mi desse un hint di questo tipo.
 
  • Mi piace
Reazioni: fisica-all
Io l'ho usato per imparare a lavorare su UE4, per ripassare un pò di web development, e rafforzare un pò le conoscenze sull'assembly.
Come ho detto non si diventa Programmatori Senior per Google seguendo corsi Udemy, però sicuramente ti danno un boost iniziale nel comprendere un argomento che puoi sfruttare per poi tuffarti con basi solide nell'apprendimento attraverso libri e quant'altro.

Stiamo andando abbastanza OT mi scuso, però penso che se stessi iniziando ora a programmare vorrei tanto che qualcuno mi desse un hint di questo tipo.
Anche postepay è da scartare.
Chiede i documenti di mia Madre, quindi siamo da capo.
Lei non si fida e rimane dell'idea che bisogna farlo con i documenti fisici allo sportello delle poste, ergo, non mi da nessun dato.
Mio padre non ha una postepay quindi è un casino visto che dovrebbe registrarsi e robe varie.
Per ora non credo di poter far molto 🤷‍♂️
Ho tentato di comprare una ricarica psn per comprare un gioco e poi chiedere il rimborso, così i soldi sarebbero andati su pay pal, ma sono rimasti nell portafoglio della ps4.
C'è qualche modo simile?
 
In codice, se non erro, e' cosi':

Python:
saldo = 50 #la tua variabile saldo, il valore ovviamente lo scegli tu in base a cosa ti serve
with open('file', 'w+') as fp: #apriamo il file in scrittura (creandolo se non esiste)
    fp.write(saldo) #scriviamo la variabile su file
    #se non erro non occorre chiudere il file se usiamo 'with'

#per leggere il file:
with open("file", "r+") as fp: #apriamo il file in lettura (creandolo se non esiste)
    contenuto = fp.read() # se vuoi leggerlo tutto, altrimenti guarda le funzioni readline, readlines ecc
   
#nel momento in cui vuoi scrivere su fil, ma non cancellando il contenuto gia' inserito
#invece di 'w+' usa 'a+'
Ho provato ma credo di aver sbagliato...
Non ho ancora trovato una soluzione
 
Ultima modifica:
Ho provato ma credo di aver sbagliato...
Non ho ancora trovato una soluzione
Guarda ti mostro una possibile soluzione, questo è il programma che svolge le funzioni base che hai richiesto più la visualizzazione del saldo disponibile. Bisogna solo scrivere nel file il valore iniziale zero. Ovviamente si può migliorare per aggiungere, ad esempio, una password da inserire e cose del genere:
Python:
print("-" * 38)
print("Programma per gestire conto corrente")
print("-" * 38)
while True:
    print("Digitare 1 per prelevare,2 per accreditare sul conto, 3 per annullare l'operazione, 4 per visualizzare il saldo attuale:")
    azione = int(input())
    if (azione == 1):
        print("Quanto si vuole prelevare?")
        importo = int(input())
        saldo = open("saldo.txt", "r")
        cont = int(saldo.read())
        saldo.close()
        saldo = open("saldo.txt", "w+")
        saldo.write(str(cont-importo))
        saldo.close()
        saldo = open("saldo.txt", "r")
        saldo_finale = saldo.read()
        print(f"Il tuo saldo finale e' di euro: {saldo_finale}")
        saldo.close()
    elif (azione == 2):
        print("Quanto si vuole versare sul conto?")
        importo = int(input())
        saldo = open("saldo.txt", "r")
        cont = int(saldo.read())
        saldo.close()
        saldo = open("saldo.txt", "w+")
        saldo.write(str(cont+importo))
        saldo.close()
        saldo = open("saldo.txt", "r")
        saldo_finale = saldo.read()
        print(f"Il tuo saldo finale e' di euro: {saldo_finale}")
        saldo.close()
    elif (azione == 3):
        print("Annullamento operazione...")
        break
    elif (azione == 4):
        saldo = open("saldo.txt", "r")
        cont = saldo.read()
        print(f"Il tuo saldo attuale e' di euro {cont}")
        saldo.close()
    else:
        print("Comando scorretto")
        print("Chiusura in corso...")
        break