Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-27 Por tema Ferran Fontcuberta

On 26/01/10 17:44, Ismael Fanlo wrote:

no és redundant... mira:
 >>> len("á"), len(unicode("á", "utf8"))
(2, 1)


No he seguit el fil i em falta la dosi de cafe, però...


>>> len("á"), len(unicode("á", "utf8"))
(2, 1)
>>> len(u"á"), len(unicode("á", "utf8"))
(1, 1)
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-26 Por tema Carles Pina i Estany

Hola,

On Jan/26/2010, Ismael Fanlo wrote:

> JoaquÃ-­n 15000

en aquest cas pot ser un problema del terminal. Amb konsole pots fer
proves fàcilment via menús.

-- 
Carles Pina i Estany
http://pinux.info
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-26 Por tema Ismael Fanlo

Jordi Funollet escribió:
Ismael, a qui intèrpret de Python estàs picant això? Si estàs fent servir 
'ipython' pot venir d'aquí el problema: a mi em falla en 'ipython' però es 
comporta en 'python'.




estic usant la shell IDLE, però el mateix comportament l'he comprobat al 
python "pelat".


Jo diría que el 'unicode()' és redundant, però els temes d'encoding sempre em 
superen. :-) Coincideixo en recomanar-te python...@python.org. Molt 
coneixement (com a Badopi) i molt bona voluntat (l'invers de Badopi). :-P




no és redundant... mira:
>>> len("á"), len(unicode("á", "utf8"))
(2, 1)

sense la funció unicode() -o el mètode .decode()- ni tans sols compta 
els caràcters correctament.


m'apuntaré a aquesta llista que em deieu en Ferran i tu...

Gràcies,



--
Ismael Fanlo

Ofimática y software libre
http://superalumnos.net
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-26 Por tema Jordi Funollet
Ismael, a qui intèrpret de Python estàs picant això? Si estàs fent servir 
'ipython' pot venir d'aquí el problema: a mi em falla en 'ipython' però es 
comporta en 'python'.

Jo diría que el 'unicode()' és redundant, però els temes d'encoding sempre em 
superen. :-) Coincideixo en recomanar-te python...@python.org. Molt 
coneixement (com a Badopi) i molt bona voluntat (l'invers de Badopi). :-P

Trobaràs els arxius a gmane.org.

-- 
##
### Jordi Funollet
### http://www.terraquis.net
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-26 Por tema Ismael Fanlo

Ismael Fanlo escribió:

Hola, davdela!

davdela escribió:


Declara los strings en unicode con la 'u' esta delante.
lista = [[u"Juan", 1],[u"Joaquín", 15000],[u"Marta",
12000],[u"María", 6000]]





Ya no hace falta.  Encontré la solución vía función unicode()

>>> lista = [["Juan", 1], ["Joaquín", 15000], ["Marta", 12000], 
["María", 6000]]

>>> for registro in lista:
nombre, importe = registro
print "%-10s%8i" %  (unicode(nombre, "utf-8"), importe)


Juan 1
Joaquín  15000
Marta12000
María 6000

Ahora el problema será como mostrará los resultados en Windows un script 
con algo así.  :-D


Sigo estudiando... gracias.

--
Ismael Fanlo

Ofimática y software libre
http://superalumnos.net
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-26 Por tema Ismael Fanlo

Hola, davdela!

davdela escribió:


Declara los strings en unicode con la 'u' esta delante.
lista = [[u"Juan", 1],[u"Joaquín", 15000],[u"Marta",
12000],[u"María", 6000]]



Gracias, ahora ya encolumna bien, pero

>>> for registro in lista:
nombre, importe = registro
print "%-10s%8i" % (nombre, importe)


Juan 1
JoaquÃ-­n 15000
Marta12000
MarÃ-­a6000

Supongo que ahora hay un problema de codificación y en vez de imprimir 
'nombre' debo imprimir la_funcion_que_sea(nombre), donde la función será 
algo que codifique (o decodifique) bien eso del unicode.


Creo que algo de esto mismo me hará falta para que el mismo script 
python me muestre los caracteres correctos en Linux y en Windows (que 
era la continuación de la pregunta).


Ya investigo, si entretanto alguien ya lo ha hecho que me oriente.

Muchas gracias.


--
Ismael Fanlo

Ofimática y software libre
http://superalumnos.net
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob


Re: [Comandob] python mola, pero me lío al dar for mato a textos con tildes

2010-01-24 Por tema davdela
2010/1/24 Ismael Fanlo :
> hmmm Hola!
>
> Ya sabéis que no soy programador, pero me gusta aprender y he aprovechado
> unos días de desconexión para hacer mi segunda incursión en Python.  ¡Esta
> vez he llegado ya a aclararme con las clases!  :-)
>
> Me gusta... ¡me gusta mucho!
>
> Pero hay un problema que no se como atacar... de entrada, me hago la picha
> un lío con eso del unicode y demás, pero bueno, al grano...
>
> Deseo imprimir encolumnada una lista de textos y valores.
>
> Por ejemplo
>
 lista = [["Juan", 1],["Joaquín", 15000],["Marta", 12000],["María",
 6000]]
>
 print lista   #una comprobación previa...
>
> [['Juan', 1], ['Joaqu\xc3\xadn', 15000], ['Marta', 12000],
> ['Mar\xc3\xada', 6000]]
>
 for registro in lista:
>        nombre, importe = registro
>        print "%-10s%8i" % (nombre, importe)
>
> Juan         1
> Joaquín     15000
> Marta        12000
> María        6000
>
>
> Las palabras que tienen tilde me salen descolumnadas... he probado con
> rjust/ljust y obtengo el mismo resultado...
>
> Claro, si resulta que Python cuenta un caracter más por la tilde...
>
 print len("a"), len("á")
>
> 1 2
>
> Entonces, oh, grandes gurús de Badopi, sed tan amables de orientarme.  A
> cambio, me someteré a vuestros caprichos perversos.  :-D
>
> Y ya de paso... ¿alguna lista de correo _en español_ sobre Python?
>
> Gràcies!
>
Declara los strings en unicode con la 'u' esta delante.
lista = [[u"Juan", 1],[u"Joaquín", 15000],[u"Marta",
12000],[u"María", 6000]]

De nada.

--
davdela
--
___
Comandob mailing list
Comandob@badopi.org
http://lists.badopi.org/mailman/listinfo/comandob