[Python] Richiesta aiuto per soluzione
Carpediem
i.carpediem a tiscali.it
Mer 1 Apr 2015 15:43:15 CEST
Scusate ma non riesco a venirne a capo: ho provato a buttar giù le
seguenti righe di codice ma nel testarle mi accorgo che non mi stampa
mai il risultato della variabile giorni. Ho provato le formule
singolarmente e come mi attendevo, impostando in input il numero dei
secondi a un milione, la formula mi restituisce in termini di giorni il
risultato di undici ma quando vado a stampare, mi ritrovo riportato il
valore di zero. Ho controlato riga per riga anche facendo i calcoli con
carta e penna e pur coincidendo tutto sulla carta, una volta eseguito il
programma mi ritrovo sempre con il saldo dei giorni a zero.
C'è qualcuno che gentilmente si presta a dare uno sguardo a quanto
segue? ho anche commentato ogni riga di codice per facilitarne la lettura.
grazie
scelta=input("Seleziona l'unità di tempo da convertire\ns per secondi, m
minuti, o ore, g giorni, ms mesi, a anni, sec secoli ")
if scelta=="s":
print()
secondi=eval(input("Inserisci il numero dei secondi ")) #l'esempio
posto è di un milione#
minuti=int(secondi/60) #converte il numero dei secondi (1000000) in
16666 minuti#
secondi=(secondi-(minuti*60))#trasforma la parte decimale dei
minuti in 40 secondi (un milione-999960). ora abbiamo 40 secondi e 16666
minuti#
ore=int(minuti/60)#converte i minuti in ore (16666 diviso 60) ora
la situazione è 40 secondi 16666 minuti e 277 ore#
minuti=minuti-(ore*60)# trasforma la parte decimale delle ore in
minuti (16666-(277*60)) quindi 46 minuti
#situazione ora è secondi=0, minuti=46, ore=277#
giorni=int(ore/24)#trasforma il numero delle ore in giorni (11)
ore=ore-(giorni*24)#trasforma la parte residuale dei giorni in ore
277-(11*24)=13
#situazione ora è secondi=0, minuti=46, ore=13, giorni=11
mesi=int(giorni*12)/365 #trasforma i giorni in mesi: in questo
caso, risultato =0#
giorni=int(giorni-(mesi*365)/12) #calcola il numero esatto dei
giorni al netto della presenza di mesi: 11-((0*365)/12)= 11 (invece
stampa 0)#
anni=int(mesi/12)
mesi=int(mesi-(anni*12))
secoli=int(anni/100)
anni=anni-(secoli*100)
print()
print("il numero dei secondi inserito equivale
a",secoli,"secoli,",anni,"anni,",mesi,"mesi,",giorni,"giorni,",ore,"ore",minuti,"minuti
e",secondi,"secondi")
Maggiori informazioni sulla lista
Python