Profilo di Giacomo Contini

Nome Giacomo Contini
Indirizzo email sciaobelo@protonmail.com
AvatarAvatar utenti
Messaggi1
  • Aiuto: come si fa a far ripartire un ciclo da una determinata riga e a fare in modo che i dati che inserisco vengano salvati?
    Forum >> Programmazione Python >> Scripting
    Ciao a tutti, sono un ragazzo di 14 anni e siccome quello che mi insegnano a scuola non mi basta ho deciso di imparare python da autodidatta.
    Volevo creare un programma che ti permetta di inserire la build del tuo pc per poi successivamente poterla rivedere o eliminare.

    v1=open("build.txt","w")
    while True:
        build_completa={}
        print("------------------------------------------------")
        print("Benvenuto nel gestore della tua build")
        print("------------------------------------------------")
        print("1. Crea build")
        print("2. Visualizza build salvata")
        print("3. Elimina build")
        x=input("\n\nScegli l' operazione da eseguire scrivendo il numero corrispondente: ")
        if x=="1":
            print("-------------------------------------------------")
            print("Crea qui la tua build")
            print("-------------------------------------------------")
            processore=input("Inserisci il nome del processore: ")
            costopr=float(input("Inserisci il prezzo del processore(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            scheda_madre=input("\nInserisci il nome della scheda madre: ")
            prezzosm=float(input("Inserisci il prezzo della scheda madre(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            scheda_grafica=input("\nInserisci il nome della tua scheda grafica: ")
            prezzosg=float(input("Inserisci il prezzo della scheda grafica(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            ram=input("\nInserisci il nome della memoria RAM: ")
            costora=float(input("Inserisci il prezzo della memoria RAM(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            case=input("\nInserisci il nome del case: ")
            costoca=float(input("Inserisci il costo del case(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            hard_disk=input("\nInserisci il nome dell' Hard Disk: ")
            costohd=float(input("Inserisci il costo dell' Hard Disk(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            alimentatore=input("\nInserisci il nome dell' alimentatore: ")
            costoal=float(input("Inserici il costo dell' alimentatore(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            ssd=input("\nInserisci il nome dell' SSD: ")
            costoss=float(input("Inserisci il costo dell' SSD(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            casse=input("\nInserisci il nome delle casse: ")
            costoce=float(input("Inserisci il costo delle casse(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            mouse=input("\nInserisci il nome del mouse: ")
            costomo=float(input("Inserisci il costo del mouse(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            tastiera=input("\nInserisci il nome della tastiera: ")
            costota=float(input("Inserisci il costo della tastiera(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            schermo=input("\nInserisci il nome dello schermo: ")
            costoso=float(input("Inserisci il costo dello schermo(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            microfono=input("\nInserisci il nome del microfono: ")
            costomi=float(input("Inserisci il costo del microfono(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            sistema_operativo=input("\nInserisci il nome del sistema operativo: ")
            costost=float(input("Inserisci il costo del sistema operativo(con i numeri dopo la virgola anche se sono due zeri, ad es. 200.00): "))
            build_completa={processore:costopr,scheda_madre:prezzosm,scheda_grafica:prezzosg,ram:costora,case:costoca,hard_disk:costohd,alimentatore:costoal,ssd:costoss,casse:costoce,mouse:costomo,tastiera:costota,schermo:costoso,microfono:costomi,sistema_operativo:costost}
            print("\n\n\n----------------------------------------------------------------------------------------\n\n\n")
            print("Il nome del tuo processore è",processore,"e costa",build_completaprocessore,"euro")
            print("Il nome della tua scheda madre è",scheda_madre,"e costa",build_completascheda madre,"euro")
            print("Il nome della tua scheda grafica è",scheda_grafica,"e costa",build_completascheda grafica,"euro")
            print("Il nome della tua memoria RAM è",ram,"e costa",build_completaram,"euro")
            print("Il nome del tuo case è",case,"e costa",build_completacase,"euro")
            print("Il nome del tuo Hard Disk è",hard_disk,"e costa",build_completahard disk,"euro")
            print("Il nome del tuo alimentatore è",alimentatore,"e costa",build_completaalimentatore,"euro")
            print("Il nome della tua SSD è",ssd,"e costa",build_completassd,"euro")
            print("Il nome delle casse è",casse,"e costano",build_completacasse,"euro")
            print("Il nome del tuo mouse è",mouse,"e costa",build_completamouse,"euro")
            print("Il nome della tua tastiera è",tastiera,"e costa",build_completatastiera,"euro")
            print("Il nome del tuo schermo è",schermo,"e costa",build_completaschermo,"euro")
            print("Il nome del tuo microfono è",microfono,"e costa",build_completamicrofono,"euro")
            print("Hai scelto il sistema operativo",sistema_operativo,"e la distribuzione selezionata costa",build_completasistema operativo,"euro")
            print("\nLa build completa costa: ",costopr + prezzosm + prezzosg + costora + costoca + costohd + costoal + costoss + costoce + costomo + costota + costoso + costomi + costost,"euro")
            print("------------------------------------------------------------------------------------------------")
            verifica=input("E' tutto giusto o vuoi modificare qualcosa? 1. è tutto giusto       2. voglio rifare la build\n")
            if verifica==2:
                continue
                #Bisogna fare in modo che il programma riparta dall' inizio del primo if
            else:
                 v1.write(str(build_completa))
                 v1.close()
        if x=="2":
            #Bisogna fare in modo che python scriva i contenuti salvati
            print("\n\n\n---------------------------------------------------------------------------------\n\n\n")
            v1=open("build.txt","r")
            text = v1.read()
            print(v1)
            v1.close()
        if x=="3":
            print('\n\nPer eliminare la build salvata basta andare nel percorso dove è salvato questo programma: dovreste trovare un file chiamato "build.txt", trovato? \nBene, spostatelo semplicemente nel cestino\n\n')
    La parte dedicata alla creazione della build è quasi perfetta: il primo problema sta nella fine ovvero dove do' la possibilità di rifare la build prima di salvarla... vorrei fare in modo che se venisse selezionato il 2 non riparta tutto il programma ma parta direttamente dal primo if.

    Il secondo problema sta nel salvataggio: finchè python è aperto la build viene correttamente salvata nel file "build.txt" ma appena chiudo l' IDLE esso torna bianco

    Per quanto riguarda la visualizzazione della build ho problemi anche lì... prendendo il caso ipotetico in cui non ci fossero i problemi di salvataggio sopra descritti il programma invece di scrivere cosa effettivamente ci sia dentro il blocco note scrive "<_io.TextIOWrapper name='build.txt' mode='r' encoding='cp1252'>




    Qualcuno può aiutarmi a risolvere questi 3 piccoli problemi?