Forum >> Principianti >> il salto condizionato

Pagina: 1

Buon Giorno a tutti




Io vengo da una programmazione visual basic e alcune volte mi trovo in difficoltà nel capire la meccanica di certe funzioni o routine di python.




Il caso del salto condizionato....

In basic la procedura del GOTO è molto semplificata IF THEN GOTO e il GOTO può essere un nome o un numero di riga,e naturalmente si può trovare in qualsiasi punto

del programma.




In python non sono riuscito a trovare un esempio pratico se non il loop che si crea in un blocco di istruzioni ma tutte raggruppate come nel ciclo While o For.

Inoltre, leggendo qua e là nella rete, sembra che i programmatori di python non sopportino minimamente questo GOTO.




Qualcuno sarebbe così gentile di crearmi un esempio di salto condizionato in un qaulsiasi punto del programma.




Grazie a tutti







In python i programmi non si organizzano in questo modo, semplicemente.


Ma il fatto è che è veramente difficile, ormai, trovare dei linguaggi di programmazione (sia pure procedurali come Python) che hanno dei "goto" espliciti. E' un tipo di controllo di flusso che i linguaggi moderni hanno abbandonato, e con ottime ragioni.


Il "sostituto", per dirla molto alla buona, sono le funzioni. Tu dichiari una funzione, e puoi chiamarla in punti arbitrari del codice (condizionatamente o meno). E' come il gosub del vecchio (visual)basic, ma ovviamente moltiplicato alla millesima potenza, che consente di fare molto ma molto di più.


Un programma Python, come del resto capita per tutti i moderni programmi procedurali, si organizza componendo funzioni in modo che si chiamino tra di loro, a partire (tipicamente) da una funzione "main" che serve da "entry point". Inoltre, siccome Python consente anche (e soprattutto!) di programmare con il paradigma a oggetti, un programma Python prevede la scrittura di classi e la creazione e manipolazione di oggetti.


Detto questo, la verità è che non ti conviene proprio affrontare Python cercando di fare analogie con i vecchi paradigmi del basic. E' un po' come se un naturalista dell'antica Grecia arrivasse qui oggi e chiedesse dove sono andati a finire aria-acqua-terra-fuoco, e con che cosa li abbiamo sostituiti.

Ti conviene cancellare tutto, studiare Python su un buon manuale come se fosse la prima volta che apri un computer, imparare poco per volta a organizzare un programma in Python, e poi... molto nel futuro... potrai anche renderti conto di eventuali parallelismi e somiglianze, ma solo dopo un bel po' di tempo.




Si, capisco benissimo cosa intendi.

Purtroppo quando hai usato per tanto tempo un linguaggio cerchi sempre delle similitudini per capire meglio.




Comunque è una pratica abbastanza regolare ed è come quando impari una lingua fai la similitudine tra una frase che sai già nella tua lingua con la lingua che stai imparando.

"come Stai" = "how are you". Sembra banale ma aiuta. Diverso sarebbe se tu cominciassi da zero e non puoi fare nessun confronto perche la tua mente è ancora libera.




Ti chiederei di farmi un esempio pratico se non ti disturba troppo. Tra l'altro ho notato una cosa nella programmazione python e cioè che se vuoi aggiungere una funzione o un qualsiasi ciclo While o For, a monte del programma, questo ti comincia a dare errori su errori perchè sembra che non sappia riconoscere dove inizia il ciclo e dove finisce.

Io uso idle di pyton per creare i programmi.




Comunque è chiaro, qui non si parla di creare grandi e complessi programmi, ma programmi con strutture molto semplici al fine di vedere se un numero dato è maggiore o inferiore a un risultato matematico.




Grazie ancora

> ed è come quando impari una lingua fai la similitudine...

Sì, bene.


E io invece ti ho detto che fare queste similitudini non ha senso. E che invece di incaponirti nelle similitudini, ti conviene azzerare tutto. E ricominciare. E studiare un buon libro daccapo, senza pre-concetti.


Ma chiaramente, invece, figurati, come preferisci, come ti senti più a tuo agio, ci mancherebbe.


> un esempio pratico

Sì, bene.


E invece un "esempio pratico", per quanto sia sempre il Sacro Graal di chi posta su un forum, è assurdo in questo caso, perché in Python non esiste il GOTO e non si può fare un esempio pratico di GOTO, e una chiamata di funzione sta al GOTO come un secchio di bulloni sta all'odore delle begonie.


E quindi eccoti il tuo "esempio pratico":


def una_funzione(a, b):
    return a + b

def un_altra_funzione(a, b):
    c = una_funzione(a, b) # GOTO!! GOTO!!
    return c

Ecco... e adesso partiamo con la filosofia. Un "esempio pratico" di chiamata di funzione, è un "esempio pratico" di GOTO? No, assolutamente. O forse invece sì? Dopo tutto si può dire che una chiamata di funzione sia simile al GOTO? No... o sì... o tutt'e due? E pensare al GOTO, permette di capire meglio che cosa fa una chiamata di funzione in Python? Boh? Forse... no... o sì... o no... o sì...

Nel tempo che uno ci mette a pensare a questa cosa, ha già fatto in tempo a leggersi i primi due capitoli del Lutz...
:D :D :D Grazie comunque




L'esempio è stato interessante e vedrò di trovare una soluzione.








--- Ultima modifica di claugo in data 2020-08-06 00:10:53 ---


Pagina: 1



Esegui il login per scrivere una risposta.