Repaso: funciones


#1



https://www.codecademy.com/es/courses/python-beginner-es-ACNhE/4/1?curriculum_id=50fc7aab5fab3aa9c2002444#


Hola a tod@s, estoy intentado de obtener la respuesta "Apagado cancelado" al escribir "NO" en sus distintas formas, pero obtengo el siguiente error en la consola: UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

Alguien podría decirme cuál puede ser la causa del error en el código y alguna sugerencia con respecto al uso de los métodos upper y lower dentro del bloque condicional if/elif, se lo agradecería.

Saludos.


def apagado():
    s = raw_input ("Quieres apagarlo?:" )
    if s == "Si" or s=="si".upper() or s=="si".lower():
        print "Apagando..."
    elif s == "No" or s.upper() or s.lower():
        print "¡Apagado cancelado!"
    else:
        print "Lo siento, no te entendí"
        
apagado()


#2

The program should take a parameter, s. There is no call for user input. Just test with direct inputs.

El programa debe tomar un parámetro, s. No hay ninguna llamada para la entrada del usuario. Sólo prueba con entradas directas.

def apagado(s):

#3

Entonces mi código debe quedar así?

def apagado(s):
s = raw_input ("Quieres apagarlo?:" )
if s == "Si" or s=="si".upper() or s=="si".lower():
print "Apagando..."
elif s == "No" or s.upper() or s.lower():
print "¡Apagado cancelado!"
else:
print "Lo siento, no te entendí"

De que forma puedo probar que el código haga lo que deba de hacer ?


#4

Demasiado complicado, y no coincide con las instrucciones.

Way too complicated, and does not match instructions.

if s == 'si':

elif s == 'no':

else:

Olvídate de cambiar el caso. Sólo introduzca minúsculas.

Forget about changing the case. Just input lowercase.

apagado('si')

#5

Si llamo a la funcion apagado("No") recibo un error
Traceback (most recent call last):
File "python", line 9, in
File "python", line 5, in apagado
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

Mi código lo tengo ahora de la siguiente forma:

def apagado(s):
if (s == "Si"):
print "Apagando..."
elif (s == "No"):
print "¡Apagado cancelado!"
else:
print "Lo siento, no te entendí"

Cuál puede ser la causa?


#6

ASCII range is 0 .. 127. To print international characters, use the unicode modifier...

print u"¡Apagado cancelado!"