elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Imprimir valor de una funcion en python
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Imprimir valor de una funcion en python  (Leído 7,477 veces)
Canariolp21

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Imprimir valor de una funcion en python
« en: 30 Noviembre 2010, 08:22 am »

Buenos dias:

Tengo un problema a ver si alguien puede ayudarme.

El ejercicio es el siguiente:

Define una función llamada area_circulo que, a partir del radio de un círculo, devuelva el valor de su área. Utiliza el valor 3.1416 como aproximación de PI o importa el valor de que encontrarás en el módulo math. (Recuerda que el área de un círculo es PI r2.).

El ejercicio ya lo tengo echo, pero lo que quiero es dividirlo en 2 funciones, una en la que ingrese los datos y la otra en la que se calcule. De momento lo tengo de esta manera:
Código:
# Importar librerias del sistema
import os
from math import pi

# Declarar variables e inicializarlas
sistema = (os.name)

if sistema=="nt":
    os.system("cls")
else:
    os.system("clear")

#Pedir los datos para ejecutar el programa
def pedida_datos():
    while True:
        try:
            radio=float(raw_input('Introduce el radio del circulo para calcular su area: '))
            if radio<0:
                print 'Debe introducir un numero positivo'
            else:
                return
           
        except ValueError:
            print "Debe introducir un numero entero o decimal."
    return

# Definición de la funcion del cálculo del área
def area_circulo():
    pi*(radio**2)
    print 'El radio es de',radio
    return

#Llamada a las funciones e impresión del resultado
pedida_datos()
area_circulo()
#print 'El area del circulo es de',area_circulo(radio)
raw_input()
print 'Fin del programa'
quit()

El problema que se puede ver en el codigo es que en el apartado de llamada a las funciones, vemos como ejecuta correctamente pedida_datos, pero no me guarda la variable radio, que la necesito usar para la funcion area_circulo.

No se si hay alguna manera de hacerlo, si alguien tiene idea que me diga algo.

Gracias de antemano a todos.


En línea

Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: Imprimir valor de una funcion en python
« Respuesta #1 en: 30 Noviembre 2010, 11:21 am »

Creo tener entendido, no me hagas demasiado caso, que para guardar tipos numericos se utiliza input en vez de raw_input. Has probado con eso?

xDnk!


En línea




Comentar es agradecer.
Visita Mi Blob
Novlucker
Ninja y
Colaborador
***
Desconectado Desconectado

Mensajes: 10.683

Yo que tu lo pienso dos veces


Ver Perfil
Re: Imprimir valor de una funcion en python
« Respuesta #2 en: 30 Noviembre 2010, 12:28 pm »

Eso es porque tienes la variable radio declarada como local (dentro de la función), y los return estan vacíos.

Código
  1. def suma(a,b):
  2.    c = a+b
  3.    return c

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein
Dnk!

Desconectado Desconectado

Mensajes: 38



Ver Perfil WWW
Re: Imprimir valor de una funcion en python
« Respuesta #3 en: 30 Noviembre 2010, 12:39 pm »

Encontre el problema:

Aqui te dejo la solucion:

Código
  1. # Importar librerias del sistema
  2. import os
  3. from math import pi
  4.  
  5. # Declarar variables e inicializarlas
  6. sistema = (os.name)
  7. radio = 0.0
  8. if sistema=="nt":
  9.    os.system("cls")
  10. else:
  11.    os.system("clear")
  12.  
  13. #Pedir los datos para ejecutar el programa
  14. def pedida_datos():
  15.    while True:
  16.        try:
  17.            radio=float(input('Introduce el radio del circulo para calcular su area: '))
  18.            if radio<0:
  19.                print 'Debe introducir un numero positivo'
  20.            else:
  21.                return radio  
  22.        except ValueError:
  23.            print "Debe introducir un numero entero o decimal."
  24.  
  25. # Definición de la funcion del cálculo del área
  26. def area_circulo(radio):
  27.    radio = pi*(radio**2)
  28.    return radio
  29.  
  30. #Llamada a las funciones e impresión del resultado
  31.  
  32.  
  33. radio = pedida_datos()
  34. print 'radio:',area_circulo(radio)
  35. raw_input()
  36. print 'Fin del programa'
  37. quit()
  38.  
  39.  

El problema es el comentado por Novlucker
En línea




Comentar es agradecer.
Visita Mi Blob
Canariolp21

Desconectado Desconectado

Mensajes: 12



Ver Perfil
Re: Imprimir valor de una funcion en python
« Respuesta #4 en: 30 Noviembre 2010, 16:48 pm »

Efectivamente, gracias a todos.

El programa lo tenia casi terminado, pero como me habéis indicado el problema era la devolución de la variable.

Gracias, para la proxima ya se que es lo que tengo que hacer.

Muchas gracias a todos.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines