Test Foro de elhacker.net SMF 2.1

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 (python) [Seleccionar]
# - *- coding: utf-8 *- -
formatter = "%r %r %r %r"

print formatter % (1, 2, 3, 4)
print formatter % ("one", "two", "three", "four")
print formatter % (True, False, False, True)
print formatter % (formatter, formatter, formatter, formatter)
print formatter % (
"i had this thing.",
"that you could type up right.",
"but it didn´t sing.",
"so I said goodnight."
)


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
Cita de: bonzay en  1 Mayo 2017, 16:54 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.

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.