Please ignore secret bonuses. Secret tests do NOT award bonus. Max hw grade is 30+2 bonus efficiency

Do you need help?

Notice Board

Per partecipare al corso di Fondamenti di programmazione 2023-24 loggatevi e attivatelo nella vostra pagina dei corsi preferiti. A quel punto il corso appare nel menù personale cliccando sul proprio avatar. Per i materiali degli anni precedenti seguite lo stesso metodo.

To join the Programming/Lab 2023-24 course, log-on and select it on the my courses page. It will appear on the personal menu of your avatar. For earlier years use the same method.

Problema con le funzioni

AndreaTasselli (5100 points)
4 6 11
in HW6 by (5.1k points)
closed by

Non riesco a capire perché non mi faccia collegare la mia funzione ad una variabile

Sono alla funzione principale def ex(file_dati, file_png, spaziatura):

e assegno :

immagine=imm(spaziatura,matrice,ListaAltezze,Larghezze,altezza,larghezza)

La funzione imm è quella che mi permette di modificare l'immagine nera, trascrivendo i palazzi.

L'errore che mi da python è che tutte le variabili all'interno di imm non sono definite.

203 views
closed with the note: trovato problema

1 Answer

saidai (1400 points)
1 2 14
by (1.4k points)

Se ti modifica direttamente l'immagine non dovrebbe avere un valore di ritorno, di conseguenza assegnarla ad una variabile non ha molto senso.

Se invece ciò che fai è lavorare su una copia dell'immagine, controlla bene che il return avvenga sempre, quindi che non sia in nessun blocco di codice con condizione.

Questi sono i consigli che posso darti con le poche informazioni che hai dato.

Per quanto riguarda le variabili non definite: 

Se non ho capito male il problema è che provi ad accedere alle variabili dichiarate nella funzione imm() dalla funzione ex().

Nella programmazione viene definita "Variable Scope" ovvero la visibilità di una variabile all'interno di un programma.

Ti consiglio di dare una letta a qualche articolo online però in breve: una variabile nasce e muore nella funzione in cui viene dichiarata

def main():
  def func():
    a = 5
  print(a)

main()

Scrivere ciò porterà ad un errore poiché la variabile "a" viene definita ed eliminata nella funzione "func".

Spero di essere stato chiaro e di aver risolto eventuali dubbi.