Python - Problemas para imprimir en unicode

   
Vista:

Problemas para imprimir en unicode

Publicado por Elian (1 intervención) el 12/07/2017 22:16:28
Hola! Estoy aprendiendo a programar en python, tengo un problema al imprimir una cadena de texto:

Si quiero imprimir un texto utilizando unicode solo coloco u antes de la cadena

print u'hola mundo' por ejemplo

pero en una funcion input esto no me sirve

str(input(u'¿Qué número desea ingresar?: '))

también lo intente poniento el texto por aparte

texto = u'¿Qué número desea ingresar?: '
respuesta = str(input(texto))

cuando se imprime me da UnicodeEncodeError, por las tildes y el signo de pregunta abierta. Por el contrario, si no coloco la u antes de la cadena salen otros caracteres que no son.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de kip

Problemas para imprimir en unicode

Publicado por kip (223 intervenciones) el 13/07/2017 03:06:44
Hola, has intentado colocar al inicio del script la cabecera de codificación ?

1
2
3
4
# -*- coding: utf-8 -*-
 
texto = u'¿Qué número desea ingresar?: '
respuesta = str(input(texto))
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
2
Comentar

Problemas para imprimir en unicode

Publicado por Richard Miguel (10 intervenciones) el 14/07/2017 18:33:07
trata en vez de poniendo una 'u' delante poner una 'r'.
Si usas python 3.3 o + esto ya no es un prblema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip

Problemas para imprimir en unicode

Publicado por kip (223 intervenciones) el 14/07/2017 19:15:19
La r interpreta un string como raw string se usa mayormente en los strings de expresiones regulares ya que dan la ventaja de escapar automáticamente el backslash '\', no es una solución, tal como dices en Python 3 no pasan estos problemas porque este almacena los strings en unicode directamente haciendo innecesario el usar la u delante del string que lo que hace es interpretar el string como texto unicode, en Python 2 no sucede igual ya que las cadenas se almacenan como ASCII de 8 bytes limitando el uso de caracteres unicode, si se usa la cabecera de coding adecuada (utf8 en este caso) no debería tener problema.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Revisar política de publicidad