Ayuda para novato en Python

Hola, estoy aprendiendo a programar y he decidido empezar con python y los cursos de codecademy. El problema es que en uno de ellos hay un ejercicio que no logro completar. Ellos me dan esto y lo tengo que hacer es completar los huecos con % para hacer el formateo de strings:

nombre = raw_input("¿Cuál es tu nombre?")
mision = raw_input("¿Cuál es tu misión?")
color = raw_input("¿Cuál es tu color favorito?")

print "Ah, asi que tu nombre es ___, tu mision es ___, \
y tu color favorito es ___." ___ (nombre, mision, color)

Esto es lo que yo he hecho:

nombre = raw_input("¿Cuál es tu nombre?")
mision = raw_input("¿Cuál es tu misión?")
color = raw_input("¿Cuál es tu color favorito?")

print "Ah, asi que tu nombre es %s, tu mision es %s, \
y tu color favorito es %s." % (nombre, mision, color)

Y sin embargo en la consola me da este error: Traceback (most recent call last):
File "python", line 1, in <module>
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)
Si alguien me pudiera ayudar se lo agradecería.
Has probado quitando carácteres especiales, como son tildes y la apertura de interrogación (¿)?

Ojo, que yo no tengo ni idea de Python, pero suele ser algo bastante común que de error por eso.
el_popi escribió:Has probado quitando carácteres especiales, como son tildes y la apertura de interrogación (¿)?

Ojo, que yo no tengo ni idea de Python, pero suele ser algo bastante común que de error por eso.

Lo acabo de probar y no va, pero gracias por la respuesta
Ai7or21 escribió:
el_popi escribió:Has probado quitando carácteres especiales, como son tildes y la apertura de interrogación (¿)?

Ojo, que yo no tengo ni idea de Python, pero suele ser algo bastante común que de error por eso.

Lo acabo de probar y no va, pero gracias por la respuesta


Me parece raro, debería ser eso, porque si ves en el error te lo está codificando como ASCII, y ahí no se incluyen esos carácteres especiales.
Me parece raro, debería ser eso, porque si ves en el error te lo está codificando como ASCII, y ahí no se incluyen esos carácteres especiales.

Bueno realmente, no da ese error pero da otro: Creo que es imposible que no se puedan poner esos signos ya que el curso se hace en web y cuando vas a pasar al siguiente ejercicio te revisa que hayas puesto lo que tengas que poner aunque este bien para python. Por cierto el error que me da ahora es este:
Traceback (most recent call last):
File "python", line 1, in <module>
TypeError: 'str' object is not callable
Ai7or21 escribió:
Me parece raro, debería ser eso, porque si ves en el error te lo está codificando como ASCII, y ahí no se incluyen esos carácteres especiales.

Bueno realmente, no da ese error pero da otro: Creo que es imposible que no se puedan poner esos signos ya que el curso se hace en web y cuando vas a pasar al siguiente ejercicio te revisa que hayas puesto lo que tengas que poner aunque este bien para python. Por cierto el error que me da ahora es este:
Traceback (most recent call last):
File "python", line 1, in <module>
TypeError: 'str' object is not callable


Copia aquí el script que estás ejecutando para que lo veamos. Pero vamos, ese error es porque estás intentando hacer algo como esto:

cadena = "algo"
cadena()

lo que te dice, es que un string no es callable...
Copia aquí el script que estás ejecutando para que lo veamos. Pero vamos, ese error es porque estás intentando hacer algo como esto:

cadena = "algo"
cadena()

lo que te dice, es que un string no es callable...


Es el mismo de arriba pero sin comas y interrogaciones:

nombre = "nombre" ("Cual es tu nombre")
mision = "mision" ("Cual es tu misión")
color = "color" ("Cuál es tu color favorito")

print "Ah, asi que tu nombre es %s, tu mision es %s, \
y tu color favorito es %s." % (nombre, mision, color)

Pero ya digo me parece raro que no se puedan poner caracteres especiales por que el ejercicio viene asi y el mismo comprueba al completarlo si has puesto lo que tenias que poner.
Venga, aprendamos Python entre los 2 :D

Así me funciona:

nombre = input("Cual es tu nombre?")
mision = input("Cual es tu misión?")
color = input("Cual es tu color favorito?")

print ("Ah, asi que tu nombre es %s, tu mision es %s, \n y tu color favorito es %s." % (nombre, mision, color))



Cual es tu nombre?David
Cual es tu misión?Salvar a mario
Cual es tu color favorito?Verde
Ah, asi que tu nombre es David, tu mision es Salvar a mario,
y tu color favorito es Verde.

Por lo que parece raw_input ha sido sustituido por input en las útlimas versiones.
Ai7or21 escribió:
Copia aquí el script que estás ejecutando para que lo veamos. Pero vamos, ese error es porque estás intentando hacer algo como esto:

cadena = "algo"
cadena()

lo que te dice, es que un string no es callable...


Es el mismo de arriba pero sin comas y interrogaciones:

nombre = "nombre" ("Cual es tu nombre")
mision = "mision" ("Cual es tu misión")
color = "color" ("Cuál es tu color favorito")

print "Ah, asi que tu nombre es %s, tu mision es %s, \
y tu color favorito es %s." % (nombre, mision, color)

Pero ya digo me parece raro que no se puedan poner caracteres especiales por que el ejercicio viene asi y el mismo comprueba al completarlo si has puesto lo que tenias que poner.


Pues ahí tienes el problema, no es exactamente el mismo de arriba, fíjate que en el de arriba tienes:

nombre = raw_input("¿Cuál es tu nombre?")

y aquí, has puesto

nombre = "nombre" ("Cual es tu nombre")

Por eso te da ese error, por que estás intentando llamar a la función "nombre" y eso es una cadena...
Lo dicho, si estás utilizando una versión posterior a Python 3.0, éste ha tenido algunas modificaciones, por lo que tendrás que utilizar algún curso o tutorial más "reciente".

Si por el contrario estás en una versión anterior, puedes seguir así:

http://docs.python.org/dev/whatsnew/3.0.html

A mi me ha funcionado de la siguiente manera con el compilador de windows de Python 3.3.3 (última versión de su web)

import sys

nombre = input("¿Cuál es tu nombre?")
mision = input("¿Cuál es tu misión?")
color = input("¿Cuál es tu color favorito?")

print ("Ah, asi que tu nombre es %s, tu mision es %s, \n y tu color favorito es %s." % (nombre, mision, color))
(mensaje borrado)
Hola, soy Ai7or21 lo que pasa es que sin querer he borrado el anterior mensaje mio a ahora no puedo editarlo con lo cual no puedo responder hasta que lo haga alguien antes.(esta cuenta)
Lo que pasa ahora es que lo que para hacer me dice el_popi tengo que borrar algunos caracteres especiales y una vez borrados llega a funcionar pero cuando me pregunta el nombre yo se lo digo pulso intro y me salta este error:

Traceback (most recent call last):
File "python", line 1, in <module>
File "<string>", line 1, in <module>
NameError: name 'Aitor' is not defined
Pon el código entero a ver cómo lo tienes ahora.
Acabo de probarlo en la web, es verdad que hay que quitar caracteres con acentos y ¿, y si los quitas luego falla en la pregunta, tiene pinta que la web falla, creo recordad que antes funciona eso bien sin tocar nada

EDITO: Tiene pinta de ser algun fallo en el curso en español si lo haces en ingles funciona perfecto
luciferfran escribió:Acabo de probarlo en la web, es verdad que hay que quitar caracteres con acentos y ¿, y si los quitas luego falla en la pregunta, tiene pinta que la web falla, creo recordad que antes funciona eso bien sin tocar nada

EDITO: Tiene pinta de ser algun fallo en el curso en español si lo haces en ingles funciona perfecto

Gracias al menos al final hemos llegado a una conclusión. Lo que haré sera hacer ese ejercicio en inglés y ya sigo en español.
15 respuestas