[Python] Richiesta aiuto per soluzione

Carpediem i.carpediem a tiscali.it
Gio 2 Apr 2015 19:24:30 CEST



Il 02/04/2015 10:52, Alessandro Re ha scritto:
> 2015-04-02 10:36 GMT+02:00 Carpediem <i.carpediem a 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
E' Bellissimo!!!!! Lo studierò meglio su ulteriori esempi ma è davvero 
una meraviglia. Grazie!!

> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.python.it/mailman/listinfo/python
>



Maggiori informazioni sulla lista Python