Re: [Python] Creare un file HTML scrivendo del codice [ERA]: Re: Evitare le importazioni circolari

2015-04-01 Per discussione Francesco Maida
Il giorno 31 marzo 2015 17:46, Lorenzo Sutton  ha
scritto:

>
> On 29/03/2015 16:34, Francesco Maida wrote:
>
>> Siccome ho un po di tempo libero volevo provare a scrivere una libreria
>> in Python che consenta di creare un file HTML scrivendo del codice.
>>
>
> Tipo E-Factory nella libreria lxml?
>
> http://lxml.de/lxmlhtml.html#creating-html-with-the-e-factory



Tipo quello, oppure io avevo visto questo che mi aveva ispirato a dire "ci
provo anch'io":

https://pypi.python.org/pypi/html/1.16
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Carpediem
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 (100) in 
1 minuti#
secondi=(secondi-(minuti*60))#trasforma la parte decimale dei 
minuti in 40 secondi (un milione-60). ora abbiamo 40 secondi e 1 
minuti#
ore=int(minuti/60)#converte i minuti in ore (1 diviso 60) ora 
la situazione è 40 secondi 1 minuti e 277 ore#
minuti=minuti-(ore*60)# trasforma la parte decimale delle ore in 
minuti (1-(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")

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Marco Beri
2015-04-01 15:43 GMT+02:00 Carpediem :

> 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.
>

Specifica che stai usando Python 3.

Se esegui, riga per riga, il tuo programma, vedrai che anche con carta e
penna non ti funziona.
Prova a fare un esempio in cui con carta e penna va e con Python no.

Ciao.
Marco.

-- 
http://beri.it/ - Un blog
http://beri.it/i-miei-libri/ - Qualche libro
http://beri.it/articoli/ - Qualche articolo
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Alessandro Re
2015-04-01 15:43 GMT+02:00 Carpediem :
> C'è qualcuno che gentilmente si presta a dare uno sguardo a quanto segue? ho
> anche commentato ogni riga di codice per facilitarne la lettura.

Personalmente voto per aggiungere qualche spazio in più, ad esempio
attorno agli operatori con "bassa priorità", tipo

questo='édifficile'=='daleggere'
questo = 'èunpo'=='meglio'
questo = 'éideale' == 'amioavviso'

Tornando al tuo problema:

> secondi=(secondi-(minuti*60))

Oltre a quanto ha detto Beri ho da aggiungere solo una domanda:
sei a conoscenza dell'operatore % (modulo)?

Perché tu fai molti passaggi di divisione e moltiplicazione (come
quello che ho fatto vedere sopra) col solo scopo di ottenere il resto
della divisione, mentre ti basta semplicemente usare l'operatore di
resto :)

Inoltre, in Python c'é anche il fantastico // che è l'operatore di
divisione intera - che trovo particolarmente utile in Python3, quindi
eviti di fare `int(a / b)` e fai solo `a // b`

Quindi, usa quei due operatori: dovresti riuscire ad ottenere lo
stesso risultato con conti più semplici, meno codice e quindi
probabilmente meno bug.

Ciauz
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Carlo Miron
Il 1 aprile 2015 18:22, Alessandro Re  ha scritto:

> 2015-04-01 15:43 GMT+02:00 Carpediem :
>> C'è qualcuno che gentilmente si presta a dare uno sguardo a quanto segue? ho
>> anche commentato ogni riga di codice per facilitarne la lettura.
> [...]
> Oltre a quanto ha detto Beri ho da aggiungere solo una domanda:
> sei a conoscenza dell'operatore % (modulo)?

e della funzione divmod [1]?

[1]: 

©

-- 
|:**THE BEER-WARE LICENSE** (Revision 42):
|  wrote this mail. As long as you retain
| this notice you can do whatever you want with this stuff.
| If we meet some day, and you think this stuff is worth it,
| you can buy me a beer in return.
|--Carlo Miron :
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Alessandro Re
2015-04-01 18:28 GMT+02:00 Carlo Miron :
> Il 1 aprile 2015 18:22, Alessandro Re  ha scritto:
>> sei a conoscenza dell'operatore % (modulo)?
>
> e della funzione divmod [1]?
>
> [1]: 

U, io non ne ero al corrente! :D Fantastico, grazie!
~Ale
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Richiesta aiuto per soluzione

2015-04-01 Per discussione Enrico Bianchi

On 04/01/2015 06:22 PM, Alessandro Re wrote:

Personalmente voto per aggiungere qualche spazio in più, ad esempio
attorno agli operatori con "bassa priorità", tipo
Giusto per la cronoaca, IDE decenti (tipo pycharm) permettono di 
riformattare l'intero codice tramite un apposito comando (tra l'altro, 
pycharm segue le regole della PEP8 per la formattazione del codice)


Enrico
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python