Forum >> Programmazione Python >> Scripting >> Quesito: come ritornare a passi precedenti di programma inserendo nuovi valori

Pagina: 1

Qui di seguito un breve script dove dopo l'esecuzione iniziale ho inserito la possibilità di ripetere gli step precedenti, il problema che sottopongo è che i passi precedenti sono ripetuti con nuovi valori, ma il risultato finale non viene aggiornato rispetto ai nuovi valori inseriti.



Ringrazio anticipatamente per l'aiuto




Alberto




Versione in uso: Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC v.1929 64 bit (AMD64)] on win32




Script:





import sys




def calcolo1():

a = input ("Inserisci a ", )

A = float(a)

b = input ("Inserisci b ", )

B= float (b)

t = (A+B)

print (t)

return t







T= calcolo1()




def calcolo2():

c = input ("Inserisci c ", )

C = float(c)

d = input ("Inserisci d ", )

D= float (d)

z = (C*D)

print (z)

return z




Z= calcolo2()




def calcolo3():

K = T*Z

print ("K =", K)




calcolo3()




def ripeti():

print ("1 per primo step, 2 per secondo step, 3 per ripetere gli step dall'inizio, 0 per uscire ")

Rp = input ()

rp = int(Rp)

if rp==(1):

return calcolo1(),ripeti()

if rp==(2):

return calcolo1(),calcolo2(),ripeti()

if rp==(3):

return calcolo1(),calcolo2(),calcolo3(),ripeti()





if rp==(0):



sys.exit()






ripeti()









Output ottenuto:

Python 3.10.4 (tags/v3.10.4:9d38120, Mar 23 2022, 23:13:41) [MSC
v.1929 64 bit (AMD64)] on win32

Type "help",
"copyright", "credits" or "license()"
for more information.






====================
RESTART: C:\PYthon\OUT\Ripetizioni_6.py ===================

Inserisci a 4

Inserisci b 6

10.0

Inserisci c 9

Inserisci d 8

72.0

K = 720.0

1 per primo step, 2
per secondo step, 3 per ripetere gli step dall'inizio, 0 per uscire


3

Inserisci a 77

Inserisci b 55

132.0

Inserisci c 99

Inserisci d 44

4356.0

K = 720.0
Nonostante nella ripetizione i valori inseriti siano differenti il risultato di K non cambia







Ciao caro, primo esercizio... sistema il codice.

Visto che la sintassi è parte del linguaggio, per capire eventuali errori metti tutto nella forma corretta usando l'apposito tasto code che trovi vicino alla tavolozza dei colori. Se non ti trovi, posta il codice con strumenti come Pastebin o similari.

Poi si ragiona sul resto.

Cya
import sys



def calcolo1():
    a = input ("Inserisci a   ",   )
    A = float(a)
    b = input ("Inserisci b   ",   )
    B= float (b)
    t = (A+B)
    print (t)
    return t


T= calcolo1()

def calcolo2():
    c = input ("Inserisci c   ",   )
    C = float(c)
    d = input ("Inserisci d   ",   )
    D= float (d)
    z = (C*D)
    print (z)
    return z

Z= calcolo2()

def calcolo3():
    K = T*Z
    print ("K  =", K)

calcolo3()

def ripeti():
    print ("1 per primo step, 2 per secondo step, 3 per ripetere gli step dall'inizio, 0 per uscire ")
    Rp = input ()
    rp = int(Rp)
    if rp==(1):
        return calcolo1(),ripeti() 
    if rp==(2):
        return calcolo1(),calcolo2(),ripeti()
    if rp==(3):
        return calcolo1(),calcolo2(),calcolo3(),ripeti()
            
            
    if rp==(0):
        #quit() kill programma
        #exit () kill programma
        #Nota IMPORTANTE dare il comando "import sys" all'inizio
        sys.exit()
    

ripeti()

Grazie per l'indicazione, ho utilizzato "Code", spero che così l'input sia nella forma corretta
Buongiorno, ripropongo la richiesta di aiuto: facendo ripetere al programma alcuni passi precedenti (funzioni), ed inserendo valori differenti rispetto a quelli della prima esecuzione, il risultato (indicato con K) non cambia, il programma fornisce sempre il risultato della prima esecuzione, non tiene conto dei nuovi input.



(Qui sotto ripropongo l'output della prima esecuzione e della ripetizione).




Ringrazio anticipatamente per il supporto




Alberto




RESTART: C:\PYthon\OUT\Ripetizioni_6.py ===================

Inserisci a 4

Inserisci b 6

10.0

Inserisci c 9

Inserisci d 8

72.0

K = 720.0

1 per primo step, 2
per secondo step, 3 per ripetere gli step dall'inizio, 0 per uscire


3

Inserisci a 77

Inserisci b 55

132.0

Inserisci c 99

Inserisci d 44

4356.0

K = 720.0
Nonostante nella ripetizione i valori inseriti siano differenti il risultato di K non cambia





Pagina: 1



Esegui il login per scrivere una risposta.