No entiendo el porque de este error ??

Francisco Palm fpalm en ula.ve
Lun Sep 26 23:24:05 CEST 2005


Si pongo el siguiente programa

#!/usr/bin/python

# -*- coding: utf-8 -*-  <-- ESTA LINEA LA CAMBIO!!!!

  

import sys

# diccionario de comidas preferidas de cada persona

comidas = {

 "Juan" : "tiburón en escabeche",

 "Pablo" : "Tostadas don Beto",  "Alfredo" : "sesos de mono",

 "Fulano" : "cucarachas fritas",

 "Sonia" : "burros",

 "Darinel" : "Tacos don Pancho"

}

def saluda(nombre, comida):

   print "Hola " + nombre + ", te gusta " + comida + ""

def pregunta(nombre):

   print "Hola " + nombre + ", que comida te gusta"

   respuesta = sys.stdin.readline()

   comidas[nombre] = respuesta

for nombre in ["Juan", "Pablo", "Alfredo", "Fulano", "Sonia", "Darinel"]:

   if comidas[nombre] is not None:

       saluda(nombre, comidas[nombre])

   else:

       pregunta(nombre)


consigo:

Primero sin ningún encoding

user en machine:~/Python$ python python-es1.py

sys:1: DeprecationWarning: Non-ASCII character '\xc3' in file python-es1.py on line 6, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Hola Juan, te gusta tiburón en escabeche

Hola Pablo, te gusta Tostadas don Beto

Hola Alfredo, te gusta sesos de mono

Hola Fulano, te gusta cucarachas fritas

Hola Sonia, te gusta burros

Hola Darinel, te gusta Tacos don Pancho
  

Ahora con "# -*- coding: iso-8859-15 -*-"

user en machine:~/Python$ python python-es1.py

Hola Juan, te gusta tibur\uffffn en escabeche

Hola Pablo, te gusta Tostadas don Beto

Hola Alfredo, te gusta sesos de mono

Hola Fulano, te gusta cucarachas fritas

Hola Sonia, te gusta burros

Hola Darinel, te gusta Tacos don Pancho
  

Ahora con "# -*- coding: utf-8 -*-"

user en machine:~/Python$ python python-es1.py

Hola Juan, te gusta tiburón en escabeche

Hola Pablo, te gusta Tostadas don Beto

Hola Alfredo, te gusta sesos de mono

Hola Fulano, te gusta cucarachas fritas

Hola Sonia, te gusta burros

Hola Darinel, te gusta Tacos don Pancho

Bueno, esto depende totalmente de como este configurado el sistema. Si 
es Windows es iso-8859-1, si es Ubuntu (Linux) es UTF-8

Pero bueno, a mi me funciona, es cuestión que revises que pasa con tu 
plataforma (Sistema Operativo y el Python instalado)

Saludos

F. Palm

Jose Rey wrote:

> Sigue dando el mismo error aun mencionando el encoding
>
> Este es el codigo y posteriormente va el error que me da:
>
> #!/usr/bin/python
> #-*- coding: iso-8859-15 -*-
>
> import sys
> # diccionario de comidas preferidas de cada persona
> comidas = {
>  "Juan" : u"tiburón en escabeche",
>  "Pablo" : "Tostadas don Beto",  "Alfredo" : "sesos de mono",
>  "Fulano" : "cucarachas fritas",
>  "Sonia" : "burros",
>  "Darinel" : "Tacos don Pancho"
> }
>
> def saluda(nombre, comida):
>    print "Hola " + nombre + ", te gusta " + comida + ""
>
> def pregunta(nombre):
>    print "Hola " + nombre + ", que comida te gusta"
>    respuesta = sys.stdin.readline()
>    comidas[nombre] = respuesta
>
> for nombre in ["Juan", "Pablo", "Alfredo", "Fulano", "Sonia", "Darinel"]:
>    if comidas[nombre] is not None:
>        saluda(nombre, comidas[nombre])
>    else:
>        pregunta(nombre)
>
> -----------------------------------------
>
> UnicodeEncodeError: 'ascii' codec can't encode character u'\xf3' in 
> position 144: ordinal not in range(128)
> -------------------------------------------
>
> Salu2 y gracias por vuestro tiempo
>
> JR
> --------------------------------------
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




Más información sobre la lista de distribución Python-es