Forum >> Principianti >> Problema variabile non definita

Pagina: 1

Salve a tutti,



sono nuovissimo del mondo Python ed oggi ho riscontrato un problema che non sono riuscito a risolvere.

Sto creando una funzione che mi restituisca una certa somma di probabilità.

All'interno di quest'ultima, c'è un un ciclo for con il quale voglio assegnare alla variabile FFz il valore della funzione Fz (definita altrove), al variare dell'indice i.

Tuttavia, non appena chiamo la funzione WProba in un'altra parte del codice, ottengo il seguente errore: NameError: name 'FFz' is not defined.




Come posso superare questo problema?




Allego il pezzo di codice problematico:





def WProba(n,tau):

n=np.abs(n)

s = 0

for i in range(210, 220,1):

FFz = Fz(i,y0,a,E0,phi,wpsve,kp,PHIpol)*E0

s = s + Proba(n,tau)*np.exp(-((e - x0)/sigmap)**2/2) /np.sqrt(2*np.pi*sigmap**2) #weighted probability

return s





Per completezza aggiungo che la funzione Proba(n,tau) sfrutta una funzione che contiene FFz nella formula matematica che la definisce.




Spero di essere stato sufficientemente chiaro e che qualcuno possa aiutarmi.




Ringrazio tutti quanti in anticipo e vi auguro una buona giornata
Diciamo che ci sono ancora... alcuni passi da fare prima di essere "sufficientemente chiaro", ecco. Prima di tutto, riposta il codice usando la formattazione giusta (c'è un apposito pulsante "code" nella barra sopra il box dove scrivi i messaggi, hai visto? Proprio accanto alla serie di quadratini colorati). In questo modo possiamo vedere i rientri e capire forse che cosa c'è che non va.


Poi dovresti fare un sforzo di scrivere chiaramente in Italiano: che cosa vuol dire "la funzione Proba(n,tau) sfrutta una funzione che contiene FFz"? Sfrutta in che senso? Ha una concessione mineraria sulla funzione? La sta ricattando? E a che cosa si riferisce quel "la definisce"? Chi è "la", tra le due funzioni?


Poi c'è il fatto che dai alle tue variabili dei nomi impossibili da capire, e che in generale dovresti veramente seguire la PEP8 quando scrivi codice python.


Poi c'è il fatto che non posti tutto lo stacktrace dell'errore che ricevi. Ok, hai un NameError, ma *dove*? Anche perché, da quello che dici, potrebbe essere nella funzione che hai postato, ma anche nella funzione che non hai postato (se ho capito quello che hai scritto, cosa di cui però dubito).


Una volta sistemate queste cose, possiamo cominciare a ragionarci sopra, suppongo.

https://leanpub.com/capirewxpython: Capire wxPython, il mio libro
https://pythoninwindows.blogspot.com: Python in Windows, il mio blog e le mie guide


Pagina: 1



Esegui il login per scrivere una risposta.