Imprimir valor de una funcion en python

Iniciado por Canariolp21, 30 Noviembre 2010, 08:22 AM

0 Miembros y 1 Visitante están viendo este tema.

Canariolp21

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:

# 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.

Dnk!

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!




Comentar es agradecer.
Visita Mi Blob

Novlucker

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

Código (python) [Seleccionar]
def suma(a,b):
    c = a+b
    return c


Saludos
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!

Encontre el problema:

Aqui te dejo la solucion:

Código (python) [Seleccionar]

# Importar librerias del sistema
import os
from math import pi

# Declarar variables e inicializarlas
sistema = (os.name)
radio = 0.0
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(input('Introduce el radio del circulo para calcular su area: '))
            if radio<0:
                print 'Debe introducir un numero positivo'
            else:
                return radio 
        except ValueError:
            print "Debe introducir un numero entero o decimal."

# Definición de la funcion del cálculo del área
def area_circulo(radio):
    radio = pi*(radio**2)
    return radio

#Llamada a las funciones e impresión del resultado


radio = pedida_datos()
print 'radio:',area_circulo(radio)
raw_input()
print 'Fin del programa'
quit()



El problema es el comentado por Novlucker




Comentar es agradecer.
Visita Mi Blob

Canariolp21

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.