[Python] Ho trovato un'altro libro carino su Python e PyGame

2012-11-01 Per discussione Francesco Maida
Ebbene, non ho paura per passare per niubbo di Python (anche perchè lo
sono) e da qualche giorno mi sto divertendo a leggere il libro "MORE PYTHON
PROGRAMMING FOR THE ABSOLUTE BEGINNER" di Jonathan S. Harbour (Edizioni
Course Technology)

Praticamente è una guida introduttiva alla programmazione in Python e
PyGame che insegna a scrivere dei piccoli videogiochi ed a imparare le basi
del linguaggio e della libreria. In ogni capitolo l'autore introduce dei
concetti e li applica per scrivere un piccolo videogioco; è molto semplice
e lineare da seguire, e soprattutto mi sto divertendo a leggere un manuale
come non mi capitava dai tempi di "Programmare Flash 5 con Actionscript" di
Gary Rosenweig, che era sempre sulla falsariga di questo: imparare un
linguaggio scrivendo piccoli videogiochi.

Personalmente sono arrivato al quinto capitolo e sto imparando a scrivere
un giochino con un'omino che deve raccattare le bombe che cadono dal cielo
prima che tocchino terra. Si lo so che sono boiate, ma almeno per me sono
decisamente divertenti da scrivere e provare ;-)

Se vi può interessare darci un'occhiata ho visto che è in vendita su
Amazon; io lo sto leggendo da Safari Books, dove è disponibile a questo
URL:

http://my.safaribooksonline.com/book/-/9781435459809



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


Re: [Python] assegnazione variabili

2012-11-01 Per discussione dadix
Il 01/11/2012 16:37, Marco Mariani ha scritto:
>  > for riga in cursore.fetchone():
>
> fetchone() non ritorna una lista, una sequenza di valori o comunque un
> oggetto iterabile. Ritorna solamente l'oggetto 'riga', oppure None.
>
> Diventa quindi
>
> riga = cursore.fetchone()
>
> Il ciclo for si puo' applicare nel caso di fetchall()
>
>
>
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
Grazie 10.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] assegnazione variabili

2012-11-01 Per discussione Marco Mariani
 > for riga in cursore.fetchone():

fetchone() non ritorna una lista, una sequenza di valori o comunque un
oggetto iterabile. Ritorna solamente l'oggetto 'riga', oppure None.

Diventa quindi

riga = cursore.fetchone()

Il ciclo for si puo' applicare nel caso di fetchall()
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] assegnazione variabili

2012-11-01 Per discussione davide
Ciao a tutti,
scusate la domandina da niubbo, ma sto cercando di imparare (python 2.7.3)
da una tabella mysql cosi strutturata (id, impiegatoid, managerid, nome) ricavo 
il valore nei campi mediate questa query 
query = """
select * from comuni where id_impiegato=10
"""
cursore.execute(query)
for riga in cursore.fetchone():
if riga != None:
(id, idimpiegato, idmanager, nome) = riga
Ora, quando eseguo il codice mi ritorna un TypeError: 'long' object is not
iterable al quale non riesco (date le mie scarse conoscenze) a dare una 
soluzione oltre che una spiegazione. Qualcuno mi può aiutare per favore?
Grazie infinite.
Davide

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


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione orsomann...@gmail.com

Il 01/11/2012 10:46, Daniele Varrazzo ha scritto:

On 2012-11-01 09:09, Stefano Dal Pra wrote:

Mah, direi che fa qualcosa tipo questo:



e che e' giorno di ferie!
non ci meritiamo proprio la crisi...


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


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Stefano Dal Pra
2012/11/1 Daniele Varrazzo :
> On 2012-11-01 10:17, Stefano Dal Pra wrote:
>>
>> 2012/11/1 Daniele Varrazzo :
>>>
>>> On 2012-11-01 09:09, Stefano Dal Pra wrote:


 Mah, direi che fa qualcosa tipo questo:
>>>
>>>
>>>
>>> Grazie per il top posting, così è facile seguire domande e risposte no?
>>
>>
>> Si', per alcuni e' piu' facile.
>
>
> Per noi lo è: questo è l'importante. Altre ML possono avere altre
> preferenze, ma non è rilevante qui. La cosa viene reiterata ogni settimana
> ma tu ovviamente sei superiore.
>
Mi piacciono la semplicita' e l'amichevolezza di python, che trovo si
rispecchi nella
semplicita' ed amichevolezza cosi' frequente in questa lista. Per
questo, malgrado
ti risulti ovvio, ti rassicuro che non sono affatto superiore, e che
non avrei mai considerato ovvio
concludere cosi' nei confronti altrui. Se ti fa piacere puoi
approfondire questo argomento in
privato, se anche tu trovi che non arricchisca poi molto la conoscenza
su python.

>
>
>> Pero' mi rimangono due dubbi:
>> - sugli esempio di uso stringhe in VB mi sembra che gli indici partano
>> da 0, come in python.
>
>
> Uso mid da quando si chiamava mid$ e lo schermo era blu con la cornice
> azzurra. Il primo carattere è 1.
>
> http://msdn.microsoft.com/en-us/library/05e63829(v=vs.80).aspx
>
>
Ok, grazie; non avendo modo di verificare, mi ero fidato del primo
esempio trovato:

strProva = "Ciao a Tutti"
str2 = Mid$(strProva, 5, 4)
'A str2 viene assegnato il valore "a Tu"
---

qui:
http://www.pierotofy.it/pages/guide_tutorials/Visual_Basic/Stringhe_in_Visual_Basic/
Da cui deducevo che si conta da zero:

0 C
1 i
2 a
3 o
4
5 a
ecc.

Morale: in caso di dubbio, meglio la doc ufficiale :-)

Spero che il porting VB --> py abbia buon esito!

Ciao

>
>> - Mi sembra che String sia per default unicode (quindi un carattere
>> --> 2 byte) tranne quando
>> si specifica direttamente la stringa tra "".
>> In questo caso B e' un buffer binario, quindi anziche B[n] si dovrebbe
>> prendere B[2*n : 2*n + 2] ?
>
>
> Il file è aperto in maniera binaria: vengono letti dei byte. Non viene fatta
> nessuna decodifica.
>
>
>
>> O in qualche modo "python way" gestire il caso di stringhe unicode?
>
>
> Sì, ci sono le stringhe unicode appunto, ma fanno loro i calcoli delle
> posizioni in memoria. Moltiplicare per 2 assume stringhe unicode memorizzate
> in UTF16, che non è sempre corretto (python può essere compilato per usare 4
> byte in memoria, e Py 3.3 ha unicode a dimensione variabile, a senconda del
> contenuto).
>
>
>
> --
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Daniele Varrazzo

On 2012-11-01 10:17, Stefano Dal Pra wrote:

2012/11/1 Daniele Varrazzo :

On 2012-11-01 09:09, Stefano Dal Pra wrote:


Mah, direi che fa qualcosa tipo questo:



Grazie per il top posting, così è facile seguire domande e risposte 
no?


Si', per alcuni e' piu' facile.


Per noi lo è: questo è l'importante. Altre ML possono avere altre 
preferenze, ma non è rilevante qui. La cosa viene reiterata ogni 
settimana ma tu ovviamente sei superiore.




Pero' mi rimangono due dubbi:
- sugli esempio di uso stringhe in VB mi sembra che gli indici 
partano

da 0, come in python.


Uso mid da quando si chiamava mid$ e lo schermo era blu con la cornice 
azzurra. Il primo carattere è 1.


http://msdn.microsoft.com/en-us/library/05e63829(v=vs.80).aspx



- Mi sembra che String sia per default unicode (quindi un carattere
--> 2 byte) tranne quando
si specifica direttamente la stringa tra "".
In questo caso B e' un buffer binario, quindi anziche B[n] si 
dovrebbe

prendere B[2*n : 2*n + 2] ?


Il file è aperto in maniera binaria: vengono letti dei byte. Non viene 
fatta nessuna decodifica.




O in qualche modo "python way" gestire il caso di stringhe unicode?


Sì, ci sono le stringhe unicode appunto, ma fanno loro i calcoli delle 
posizioni in memoria. Moltiplicare per 2 assume stringhe unicode 
memorizzate in UTF16, che non è sempre corretto (python può essere 
compilato per usare 4 byte in memoria, e Py 3.3 ha unicode a dimensione 
variabile, a senconda del contenuto).



--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Stefano Dal Pra
2012/11/1 Daniele Varrazzo :
> On 2012-11-01 09:09, Stefano Dal Pra wrote:
>>
>> Mah, direi che fa qualcosa tipo questo:
>
>
> Grazie per il top posting, così è facile seguire domande e risposte no?

Si', per alcuni e' piu' facile.

> Riordino...
>
>
>> On Thu, Nov 1, 2012 at 9:33 AM, orsomann...@gmail.com
>>  wrote:
>>>
>>> C'e' qualcuno che sa aiutarmi a convertire questo pezzo di codice VB in
>>> Python?
>
>
>>> Dim Buffer As String * 327
>>>
>>> fileno = FreeFile
>>> Open ".\DATAFILE" For Binary As #fileno
>>> Get #fileno, , Buffer
>
>
>> f = open('DATAFILE','rb')
>> B = f.read(327)
>
>
>
>>> VCod = Hex2(Asc(Mid(Buffer, 9, 1))) & Hex2(Asc(Mid(Buffer, 10,1))) &
>>> Left(Hex2(Asc(Mid(Buffer, 11, 1))), 1)
>
>
>> Vcod = "%02x%02x%02x"%(B[9], B[10], B[11])
>
>
> Mi sembra che Mid sia base 1: in questo caso dovrebbe essere:
>
> Vcod = "%02x%02x%02x"%(ord(B[8]), ord(B[9]), ord(B[10]))

Sull'a necessita' di ord() mi sono reso conto appena ho provato il
pezzetto di codice,
ahime solo dopo aver cliccato "Send".

Pero' mi rimangono due dubbi:
- sugli esempio di uso stringhe in VB mi sembra che gli indici partano
da 0, come in python.

- Mi sembra che String sia per default unicode (quindi un carattere
--> 2 byte) tranne quando
si specifica direttamente la stringa tra "".
In questo caso B e' un buffer binario, quindi anziche B[n] si dovrebbe
prendere B[2*n : 2*n + 2] ?
O in qualche modo "python way" gestire il caso di stringhe unicode?

Grazie, ciao.
>
>
>>> VCog = Trim(Mid(Buffer, 31, 30))
>>
>> Vcog = B[31:62].strip()
>
>
> Sempre se Mid è base 1, questo sembra più:
>
> Vcog = B[30:60].strip(' ')
>
> strip elimina tutti i whitespace, anche tabe crlf, credo Trim() elimini solo
> gli spazi.
>
>
>
>> Se puoi prova ad allegare un "DATAFILE" ed il risultato che da i
>> lcodice originale...
>
>
>
> --
> Daniele Varrazzo - Develer S.r.l.
> http://www.develer.com
>
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Marco Beri
2012/11/1 Daniele Varrazzo 

> On 2012-11-01 09:09, Stefano Dal Pra wrote:
>
>> On Thu, Nov 1, 2012 at 9:33 AM, orsomann...@gmail.com
>>
>
>>  VCog = Trim(Mid(Buffer, 31, 30))
>>>
>> Vcog = B[31:62].strip()
>>
>
> Sempre se Mid è base 1, questo sembra più:
>
> Vcog = B[30:60].strip(' ')
>
> strip elimina tutti i whitespace, anche tabe crlf, credo Trim() elimini
> solo gli spazi.


Sì, hai ragione: giusto usare per strip il parametro ' '.
Da
http://msdn.microsoft.com/en-us/library/microsoft.visualbasic.strings.trim.aspx
:

Returns a string containing a copy of a specified string with no leading
spaces (LTrim), no trailing spaces (RTrim), or no leading or trailing
spaces (Trim).

Ciao.
Marco.

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


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Daniele Varrazzo

On 2012-11-01 09:09, Stefano Dal Pra wrote:

Mah, direi che fa qualcosa tipo questo:


Grazie per il top posting, così è facile seguire domande e risposte no? 
Riordino...



On Thu, Nov 1, 2012 at 9:33 AM, orsomann...@gmail.com
 wrote:
C'e' qualcuno che sa aiutarmi a convertire questo pezzo di codice VB 
in

Python?



Dim Buffer As String * 327

fileno = FreeFile
Open ".\DATAFILE" For Binary As #fileno
Get #fileno, , Buffer



f = open('DATAFILE','rb')
B = f.read(327)




VCod = Hex2(Asc(Mid(Buffer, 9, 1))) & Hex2(Asc(Mid(Buffer, 10,1))) &
Left(Hex2(Asc(Mid(Buffer, 11, 1))), 1)



Vcod = "%02x%02x%02x"%(B[9], B[10], B[11])


Mi sembra che Mid sia base 1: in questo caso dovrebbe essere:

Vcod = "%02x%02x%02x"%(ord(B[8]), ord(B[9]), ord(B[10]))



VCog = Trim(Mid(Buffer, 31, 30))

Vcog = B[31:62].strip()


Sempre se Mid è base 1, questo sembra più:

Vcog = B[30:60].strip(' ')

strip elimina tutti i whitespace, anche tabe crlf, credo Trim() elimini 
solo gli spazi.




Se puoi prova ad allegare un "DATAFILE" ed il risultato che da i
lcodice originale...



--
Daniele Varrazzo - Develer S.r.l.
http://www.develer.com
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] Letture file binario da Vb a Python

2012-11-01 Per discussione Stefano Dal Pra
Mah, direi che fa qualcosa tipo questo:

f = open('DATAFILE','rb')
B = f.read(327)
Vcod = "%02x%02x%02x"%(B[9], B[10], B[11])
Vcog = B[31:62].strip()

Se puoi prova ad allegare un "DATAFILE" ed il risultato che da i
lcodice originale...

Ciao

On Thu, Nov 1, 2012 at 9:33 AM, orsomann...@gmail.com
 wrote:
> C'e' qualcuno che sa aiutarmi a convertire questo pezzo di codice VB in
> Python?
>
>
> Dim Buffer As String * 327
>
> fileno = FreeFile
> Open ".\DATAFILE" For Binary As #fileno
> Get #fileno, , Buffer
>
> VCod = Hex2(Asc(Mid(Buffer, 9, 1))) & Hex2(Asc(Mid(Buffer, 10,1))) &
> Left(Hex2(Asc(Mid(Buffer, 11, 1))), 1)
>
> VCog = Trim(Mid(Buffer, 31, 30))
>
>
>
> Function Hex2(Number)
>   Hex2 = Right("00" & Hex(Number), 2)
> End Function
>
>
>
> Grazie.
> ___
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/mailman/listinfo/python
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


[Python] Letture file binario da Vb a Python

2012-11-01 Per discussione orsomann...@gmail.com
C'e' qualcuno che sa aiutarmi a convertire questo pezzo di codice VB in 
Python?



Dim Buffer As String * 327

fileno = FreeFile
Open ".\DATAFILE" For Binary As #fileno
Get #fileno, , Buffer

VCod = Hex2(Asc(Mid(Buffer, 9, 1))) & Hex2(Asc(Mid(Buffer, 10,1))) & 
Left(Hex2(Asc(Mid(Buffer, 11, 1))), 1)


VCog = Trim(Mid(Buffer, 31, 30))



Function Hex2(Number)
  Hex2 = Right("00" & Hex(Number), 2)
End Function



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