Este es mi script:
def costo_hotel(noches):
return 140 * noches
def costo_del_vuelo(ciudad):
cities = {
"Córdoba": 821,
"Iguazú": 941,
"Ushuaia": 1280,
"Bariloche": 1848,
}
return cities[ciudad]
def alquiler_de_auto(dias):
costo = dias * 338
if dias >= 7:
costo = costo - 100
elif dias >= 3:
costo = costo - 50
return costo
def costo_viaje(cuidad, dias, otros_gastos):
return aquiler_de_auto(dias) + costo_del_vuelo(cuidad) + costo_hotel(dias) + otros_gastos
print costo_viaje('Bariloche',5,600)
Parece que el problema esta en la última parte, en el print:
print costo_viaje('Bariloche',5,600)
no se a que quieres llegar, pero tienes varios errores...
primero... el print no puede estar dentro de la función... si no vas a crear un loop infinito... e igual no se llama solo
segundo... falta encode para soportar acentos
tercero otros gastos no está definido... corrige esos errores y explicate que quieres... porque no dijiste nada :s
Cita de: engel lex en 15 Enero 2015, 06:16 AM
no se a que quieres llegar, pero tienes varios errores...
primero... el print no puede estar dentro de la función... si no vas a crear un loop infinito... e igual no se llama solo
segundo... falta encode para soportar acentos
tercero otros gastos no está definido... corrige esos errores y explicate que quieres... porque no dijiste nada :s
Es un ejercicio que me encargaron: esta es la instrucción: mostrar en pantalla (print) el costo_viaje a "Bariloche" por 5 días con 600 pesos más para otros gastos.
Según el profesor, todo esta bien el error radica en el print, el mensaje que me da es este: ¡Uy! Probá otra vez. ¡Uy! ¿Borraste sin querer la función costo_viaje?
bueno... el print no debe estar dentro de la funcion, el print debe ser externo a todo
Cita de: engel lex en 15 Enero 2015, 06:26 AM
bueno... el print no debe estar dentro de la funcion, el print debe ser externo a todo
Entonces debería quedar así:
def costo_viaje(cuidad, dias, otros_gastos):
return aquiler_de_auto(dias) + costo_del_vuelo(cuidad) + costo_hotel(dias) + otros_gastos
print costo_viaje('Bariloche', 5, 600)
Puedes ser mas específico???
Si lo dejo así (fuera) me da este error el compilador:
Traceback (most recent call last):
File "python", line 24, in <module>
File "python", line 23, in costo_viaje
NameError: global name 'aquiler_de_auto' is not defined
Parece que es un error lógico
ya resolviste un error... el error no es logico... revisa bien tus funciones... por que dice no definido? (lee bien tu codigo)
Si meto:
# -*- coding: utf-8 -*-
al principio correo en mi computadora (por supuesto no arroja ningún dato) pero tampoco me muestra ningún error
correo?
Cita de: engel lex en 15 Enero 2015, 06:52 AM
correo?
Perdón es que puse lo de encoding y que corre.
Pero bueno, en caso de que estuviera bien la función, ¿como le hago para llamar a mi función y hacer que imprima en pantalla?
def funcionX(parametro):
dentro_de_la_funcion=parametro
salida = "hola mundo"
return salida
print funcionX("x")
Cita de: engel lex en 15 Enero 2015, 07:00 AM
def funcionX(parametro):
dentro_de_la_funcion=parametro
salida = "hola mundo"
return salida
print funcionX("x")
Gracias ya quedó: solo tenia que borrar la penultima linea, la del return, el programa no sirve para nada, solo era para una clase y ya sabes hay que obedecer al maestro jejeje
Hola
1) NameError: global name 'aquiler_de_auto' is not defined
El error se explica por si mismo, estás intentando llamar a una función que no ha sido no definida, es decir, no existe.
Y la razón de que no exista es porque cometiste un error al escribir el nombre de dicha función... se puede ver a simple vista :P.
2) Lo de la codificación de texto... ya te lo han explicado, pero usa la correcta:
# -*- coding: Windows-1252 -*-
Saludos
Cita de: Eleкtro en 15 Enero 2015, 07:22 AM
Hola
1) NameError: global name 'aquiler_de_auto' is not defined
El error se explica por si mismo, estás intentando llamar a una función que no ha sido no definida, es decir, no existe.
Y la razón de que no exista es porque cometiste un error al escribir el nombre de dicha función... se puede ver a simple vista :P.
2) Lo de la codificación de texto... ya te lo han explicado, pero usa la correcta:
# -*- coding: Windows-1252 -*-
Saludos
Gracias por la respuesta:
¿Que significa lo que has puesto del coding?
# -*- coding: Windows-1252 -*-
¿Es para usuarios de Windows? porque yo no uso Windows.
Saludos xD
Cita de: iZafNat en 15 Enero 2015, 16:53 PM¿Que significa lo que has puesto del coding?
Cada codificación usa un set de caracteres distintos.
Windows-1252
Cita de: http://en.wikipedia.org/wiki/Windows-1252Windows-1252 or CP-1252 is a character encoding of the Latin alphabet,
latin-1
http://en.wikipedia.org/wiki/ISO/IEC_8859-1
utf-8
http://www.utf8-chartable.de/
PD: De todas formas, utf-8 también te sirve.
saludos