Profilo di DavidP

Nome DavidP
Indirizzo email n/a
Messaggi2
  • 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()



  • 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? :confused: :confused: :confused:

    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()