Problema en python [alguno me ayuda??]

Iniciado por Joe Fraddy, 15 Enero 2015, 06:07 AM

0 Miembros y 2 Visitantes están viendo este tema.

Joe Fraddy

Este es mi script:

Código (python) [Seleccionar]
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)

engel lex

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
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Joe Fraddy

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?

engel lex

bueno... el print no debe estar dentro de la funcion, el print debe ser externo a todo
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Joe Fraddy

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

engel lex

ya resolviste un error... el error no es logico... revisa bien tus funciones... por que dice no definido? (lee bien tu codigo)
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Joe Fraddy

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

engel lex

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

Joe Fraddy

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?

engel lex

Código (python) [Seleccionar]
def funcionX(parametro):
  dentro_de_la_funcion=parametro
  salida = "hola mundo"
  return salida

print funcionX("x")
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.