Forum >> Principianti >> informazione su come python interpreta i programmi

Pagina: 1

ciao a tutti,
sto imparando ad utilizzare python, e facendo un esercizio mi sono accorto di un quid di strano, almeno per me
questa è la mia main:

def main ():
initComandi()
while True:
print("ciao, ci troviamo in",os.getcwd(),"\n")
print(MENU)
comando = accettaComando()
if eseguiOrdine(comando) == Quitter:
print("aaaahiaaa")
break

initComandi va a riempire un dizionario che funge da tabella di salto
MENU dice all'utente cosa può scegliere di fare (es. 1 visualizza i file della pwd, 2 vai nella cartella superiore, etc etc etc)
accettaComando chidee all'utente di digitare un numero e controlla che sia inizializzato nella tabella di salto

inizialmente avevo messo prima eseguiOrdine (che va a dare il via alla funzione scelta) e poi l'if con il quit, però mi sono accorto che così facendo qualsiasi comando dessi veniva eseguito per ben due volte (quindi ad esempio andavo nella cartella genitore della cartella superiore della pwd), quindi ho rimosso eseguiOrdine ed ho lasciato solo l'if.. quit per assicurarmi di dare il break

come mai il programma così strutturato lavora egregiamente? a lume di naso il fatto che eseguiOrdine stia dentro un if non dovrebbe impedire di eseguire quel comando?
spero di essermi spiegato bene


--- Ultima modifica di Carlo85 in data 2020-04-11 16:52:01 ---
Ciao,
non si capisce il funzionamento del codice che hai incollato perché manca l’indentazione obbligatoria indispensabile per capire dove si chiudono la if e gli altri costrutti.

Giuseppe



--- Ultima modifica di giuseppeb in data 2020-04-12 07:36:39 ---
eppure quando l'avevo incollato c'era....
def main ():
	initComandi()
	while True:
		print("ciao, ci troviamo in",os.getcwd(),"\n")
		print(MENU)
		comando = accettaComando()
		#eseguiOrdine(comando)
		if eseguiOrdine(comando) == Quitter:
			print("aaaahiaaa")
			break


adesso?


PS
Buona Pasqua a tutti!!


--- Ultima modifica di Carlo85 in data 2020-04-12 10:23:49 ---
Beh quella è una funzione. Se la chiami una volta, la esegui una volta. Se la chiami due volte, la esegui due volte.


(che cosa succede se la chiami tre volte è lasciato come esercizio).


E non è eseguita "dentro" un if: "dentro" un if ci sta appunto tutto ciò che è rientrato rispetto all'if.


Il consiglio è sempre, sempre, sempre quello: imparare Python seguendo un buon manuale passo-passo. Il Lutz è sempre una buona scelta.



Pagina: 1



Esegui il login per scrivere una risposta.