Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: bonzay en 1 Mayo 2017, 16:54 pm



Título: Me sale un mensaje raro en python
Publicado por: bonzay en 1 Mayo 2017, 16:54 pm
Este es el código:
Código
  1. # - *- coding: utf-8 *- -
  2. formatter = "%r %r %r %r"
  3.  
  4. print formatter % (1, 2, 3, 4)
  5. print formatter % ("one", "two", "three", "four")
  6. print formatter % (True, False, False, True)
  7. print formatter % (formatter, formatter, formatter, formatter)
  8. print formatter % (
  9. "i had this thing.",
  10. "that you could type up right.",
  11. "but it didn´t sing.",
  12. "so I said goodnight."
  13. )

pero al cargarlo en cmd me sale:

but it didn\xc2\xb4 en vez de salirme but it didn´t sing. ¿Alguien sabe porque?


Título: Re: Me sale un mensaje raro en python
Publicado por: Eleкtro en 1 Mayo 2017, 17:53 pm
but it didn\xc2\xb4 en vez de salirme but it didn´t sing. ¿Alguien sabe porque?

Bueno, antes que nada cabe mencionar que para empezar la palabra está mal escrita puesto que estás usando un diacritico agudo; en su lugar deberías usar una comilla ( didn't ) y fin de todos tus problemas.

Con respecto a lo que te sucede, se debe a que estás usando el especificador %r ( repr() ) y esto genera una representación evaluable/compilable del objeto, en este caso del caracter especial ( ´ ) del set de caracteres Latin1/Windows-1252, generando la secuencia de bytes unicode de dicho caracter. Para solucionarlo sencillamente no uses %r, utiliza el especificador %s ( str() ) para devolver una representación literal de los caracteres que componen al string.

PD: Quizás haya otras formas de solucionarlo sin reemplazar el uso de %r, no domino mucho Python.

  • https://docs.python.org/2/library/functions.html#repr
  • https://docs.python.org/2/library/functions.html#str


Título: Re: Me sale un mensaje raro en python
Publicado por: engel lex en 1 Mayo 2017, 17:56 pm
el ´ que tienes no es un apostrofe inglés ' , es un acento español, esto no es un caracter ascii, por lo que supongo estás en windows y según ya explicó elektro en un tema, la cofificación a usar no es utf8 en ese caso

https://foro.elhacker.net/buscador-t466577.0.html (https://foro.elhacker.net/buscador-t466577.0.html)


Título: Re: Me sale un mensaje raro en python
Publicado por: bonzay en 1 Mayo 2017, 18:46 pm
Muchas gracias lo del acento me quedo claro el resto del % no entendi nada, me estoy iniciando en python yo solo con un libro de Zed A. Shaw traducido al español  :rolleyes:

solo llego a saber que %s se usa para cadenas de letras y %r no le pillo aún el uso porque según lei para entenderlo es un código genérico que sirve para todo.