Forum
>>
Principianti
>>
Problema Funzione e liste
Pagina: 1
Esegui il login per scrivere una risposta.
Pagina: 1
Scritto da DavidP |
2018-11-15 07:03:34 - Problema Funzione e liste
|
Ciao,
mi sto rimettendo dopo alcuni anni a programmare ed ho scelto python come linguaggio. Sto svolgendo alcuni esercizi e non riesco a comprendere un valore in uscia ad una funzione che mi dovrebbe generare una lista. Traduco, ho creato una funzione divisore che immettendo in ingresso un valore intero mi calcola la lista di tutti i fattori primi che lo dividono. Inserendo manualmente il valore tutto funziona correttamente. Creando invece un loop nella funzione main l'output è il seguente: Come mai appare l'ultimo valore in rosso e cosa significa? Grazie valore totale immesso: 20
valore totale immesso: 10
valore totale immesso: 5
valore totale immesso: 1
lista divisori [1, 2, 2, 5, 1, [...]]
def divisore(tot,list_divisori): print('valore totale immesso:',tot) list_num_primi=[2, 3, 5, 7, 11, 13, 17, 19] if tot!=1: for x in list_num_primi: if tot%x == 0: tot =int(tot/x) #print('nuovo tot',tot) list_divisori.append(x) divisore(tot, list_divisori) break else: list_divisori.append(1) return (list_divisori) def main(): for i in range(2,21): lista_divisori=[] lista_divisori.append(divisore(i,lista_divisori)) print('lista divisori', lista_divisori) if __name__ == '__main__': main() |
|
Scritto da RicPol |
2018-11-15 10:58:15 - Re: Problema Funzione e liste
|
Per cortesia, quando posti il codice usa il pulsante "code" (quello con le "<>") per formattarlo... così possiamo vedere i rientri e capire dove sta il problema....
https://pythoninwindows.blogspot.com/p/i-miei-libri.html : i miei libri
https://pythoninwindows.blogspot.com : il mio blog |
|
Scritto da DavidP |
2018-11-15 12:03:24 - Re: Problema Funzione e liste
|
risolto in facebook grazie... lo avevo usato ma lo ha formattato male... ecco il codice corretto:
https://repl.it/@BrunoDel/WiltedShabbyWordprocessor?fbclid=IwAR270DkMedrKVuddaPA9HS68MP-GqdgwiDjhFRBtShulolQcCZ9m2jhlOko def divisore(tot,list_divisori): list_num_primi=[2, 3, 5, 7, 11, 13, 17, 19] if tot != 1: for x in list_num_primi: if tot % x == 0: tot =int(tot/x) list_divisori.append(x) divisore(tot, list_divisori) break return list_divisori def main(): lista_divisori=[] for i in range (2,20): lista_divisori.append(divisore(i,1)) print (lista_divisori) if __name__ == '__main__': main() |
Pagina: 1
Esegui il login per scrivere una risposta.