2015-04-02 10:36 GMT+02:00 Carpediem <i.carped...@tiscali.it>: >> Sono alle primissime armi con python e non conosco la funzione divmod >> A giudicare dall'entusiasmo che altri hanno manifestato al tuo suggerimento, >> ritengo opportuno cercare notizie in proposito. grazie
divmod non fa altro che fare // e % assieme: 8 // 5 # == 1 8 % 5 # == 3 quoz, resto = divmod(8, 5) # == (1, 3) visto che divisione intera e resto sono due operatori accoppiati, mi sembra logico avere una funzione che restituisca entrambi con un solo calcolo, da qui il mio entusiasmo :) Comunque, quando dici: > Sono a conoscenza dell'operatore modulo ma i vari passaggi di divisione > e moltiplicazione in realtà non hanno lo specifico compito di ottenere un > numero intero ma di trasformare ad esempio, un alto numero di minuti in > un numero che rientri nel normale limite per giungere alla grandezza > superiore immediatamente successiva. quello che capisco è "faccio l'operazione inversa per calcolare il modulo" :D Poi magari non ho capito bene cosa intendi, ma dal tuo codice mi pare di capire che hai bisogno del modulo. Cioé, se hai 100 minuti, tu vuoi ottenere la conversione in Q ore e R minuti, cioé 1 ora e 40 minuti (1 ora * 60 minuti + 40 minuti = 100 minuti), che è esattamente l'operatore modulo. In ogni caso, ecco come farei: def converti_secondi_in_roba_varia(T): minuti, secondi = divmod(T, 60) ore, minuti = divmod(minuti, 60) giorni, ore = divmod(ore, 24) anni, giorni = divmod(giorni, 365) secoli, anni = divmod(anni, 100) return secoli, anni, giorni, ore, minuti, secondi converti_secondi_in_roba_varia(12345678) # (0, 0, 142, 21, 21, 18) Mancano le settimane, in realtà, mentre i mesi non sono determinabili correttamente perché cambiano di lunghezza. Però ho verificato con wolframalpha e sembra funzionale: http://www.wolframalpha.com/input/?i=12345678+seconds Ciauz ~Ale _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python