DavidP
Profilo di
Nome | DavidP |
---|---|
Indirizzo email | n/a |
Messaggi | 2 |
-
- 2018-11-15 12:03:24
- Re: Problema Funzione e liste
- Forum >> Principianti
- 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()
-
- 2018-11-15 07:03:34
- Problema Funzione e liste
- Forum >> Principianti
- 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()