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.

Una funzione puo' ritornare 2 variabili? (2 variabili no, ma due valori sì)

ClaudioDiCocco (710 points)
7 17 24
in Programmare in Python by (710 points)
edited by

Mi chiedevo, di potrebbe far valere il "principio" che ci e' stato spiegato a lezione nel return di una funzione?

Il "principio" a cui mi riferisco e' il seguente --> a , b = b , a    da cui -->  (new)a=(old)b e (new)b=(old)a

praticamente se io definissi una funzione con all'interno:    return a , b

e la richiamassi in questo modo:    var1 , var2 = miafunzione()

Sarebbe una cosa con un minimo di senso o avrei fatto una boiata? Conoscete altri modi per fare cio'?

2.4k views
closed

3 Answers

Best answer
Auron (15880 points)
52 126 194
by (15.9k points)
selected by
Sarebbe una cosa che ha senso, sì :)
La cosa "funziona" (Piccolo gioco di parole :P) e a volte è molto utile... io l'ho usata spesso nei miei homeworks sperimentandola di volta in volta... Dopotutto la programmazione è anche sperimentare, se non soprattutto :)
.... e poi.... non credi sarebbe uno spreco definire una funzione senza darle la possibilità di ritornare più di un valore? :)

Esponendo il tutto come hai fatto, quindi, direi che il risultato che otterresti è esattamente var1=a(della funzione) e var2=b(della funzione) :D

Se è questo che volevi sapere e la mia conferma ti è stata utile, sarei molto contento se mi contrassegnassi come Best Answer :)
ClaudioDiCocco (710 points)
7 17 24
by (710 points)
Grazie mille, molto utile!
Auron (15880 points)
52 126 194
by (15.9k points)
Felice di aver aiutato, grazie per la Best Answer :D
francesco.dev (33560 points)
23 51 129
by (33.6k points)
Ottima risposta :D
Auron (15880 points)
52 126 194
by (15.9k points)
Ciao Fra :D
Un giorno o l'altro ti offro un caffè :)
LeonardoEmili (35740 points)
14 65 155
by (35.7k points)

Ciao!

Si è perfettamente legale! Anzi è indispensabile in alcuni casi in cui vuoi ottenere una coppia di valori!

Il meccanismo è permesso attraverso l'utilizzo delle tuple, che ti permettono di ritornare più di un valore da una singola funzione. Cosa che non è possibile fare in tutti i linguaggi!

Se volessi approfondirne i comportamenti ti linko questo interessante articolo:

http://www.geeksforgeeks.org/g-fact-41-multiple-return-values-in-python/

Buon code!

.

Leonardo Emili

andrea.sterbini (208020 points)
756 1270 2377
by (208k points)
  1. lo abbiamo spiegato a lezione
  2. non torni due variabili ma una tupla formata da due valori
  3. quando fai l'assegnamento assegni alle due variabili i due valori contenuti nella tupla tornata dalla funzione