我不能让我的程序回到它的菜单

时间:2015-03-26 01:07:24

标签: python-2.7

我制作了这个小型计算器来告诉人们他们的卡路里和体重指数以及其他东西,但是当我想使用函数regresarMenu()时它没有带我回到菜单,它告诉我一个错误,说" str"是不可调用的,我不知道如何找到一种方法将其循环回菜单

import time
import sys

print("")
print("Bienvenido a la calculadora saludable")
print("Debe llenar la siguiente informacion para proceder ")
print("") 
peso = int(raw_input("ingrese su peso en kilogramos: "))
estatura = float(raw_input("ingrese su estatura en metros: "))
nombre = raw_input("ingrese su nombre: ")
edad = int(raw_input("ingrese su edad: "))
sexo = raw_input("ingrese masculino si es hombre y femenino si es mujer: ")


def imc():

    imc = peso/(estatura*estatura)
    print("Calculando el indice de masa corporal, espere unos segundos")
    time.sleep(3)
    print("")
    print (("Saludos "+ nombre +" su indice de masa corporal es    de")+str(imc))
    print("")

    if(imc<18):
        print(nombre+" su peso es bajo, necesario valorar signos de     desnutricion")

    elif(18<imc<24.9):
        print(nombre+" se encuentra en un nivel de peso normal")

    elif(25<imc<26.9):
        print(nombre+" se encuentra con sobrepeso")

    elif(27<imc<29.9):
        print(nombre+ " esta en el rango de obesidad grado I")
        print("El reisgo para desarollar enfermedades cardiovasculares es relativamente alto")

    elif(30<imc<39.9):
        print(nombre+ " esta en el rango de obesidad grado II")
        print("El reisgo para desarollar enfermedades cardiovasculares es muy alto")

    else:
        print(nombre+ " esta en el rango de obesidad grado III, extrema o morbida")
        print("El reisgo para desarollar enfermedades")
        print("cardiovasculares es extremadamente alto")

    print("")
    regresarMenu()


def peso_ideal():
    altura = estatura*100
    pesoIdeal = 0.75*(altura-150)+50
    rango1 = float(pesoIdeal-7)
    rango2 = float(pesoIdeal+7)
    print("") 
    print (nombre+ " su peso ideal deberia de estar entre "+str(rango1)+" y "+str(rango2)+"kg")
    print("")
    regresarMenu()

def calorias():
    altura = estatura*100
    if(sexo == "masculino"):
        TMB = float(10*peso)+(6.25*altura)-(5*edad)-161
        print("")
        print("Las calorias que utiliza durante el dia son: "+ str(TMB))
    if(sexo == "femenino"):
        TMB = float(10*peso)+(6.25*altura)-(5*edad)+5
        print("")
        print("Las calorias que utiliza durante el dia son: "+str(TMB))
    print("") 
    print (nombre+ " su peso ideal deberia de estar entre "+str(rango1)+" y "+str(rango2)+"kg")
    print("")
    regresarMenu()



def menu():
    print("")
    print("*********************************************************")
    print("*    ******** ********* *          ********  *        * *")
    print("*   *         *       * *         *          *        * *")
    print("*  *          *       * *        *           *        * *")
    print("*  *          *       * *        *           *        * *")
    print("*  *          *       * *        *           *        * *")
    print("*  *          ********* *        *           *        * *")
    print("*  *          *       * *        *           *        * *")
    print("*  *          *       * *        *           *        * *")
    print("*   *         *       * *         *          *        * *")
    print("*    ******** *       * ********   ********   ********  *")
    print("*********************************************************")
    print("")
    print("")
          print("******************************************************************")
    print("* 1) Si desea calcular su IMC presione 1                         *")
    print("* 2) Si desea encontrar su peso ideal presione 2                 *")
    print("* 3) Si desea ver la cantidad de calorias que utiliza presione 3 *")
    print("*                                                                *")
    print("******************************************************************")
    respuesta = raw_input("")

    if(respuesta == "1"):
        imc()
    if(respuesta == "2"):
        peso_ideal()    
    if(respuesta == "3"):
        calorias()

def regresarMenu():
    menu = raw_input("Desea regresar al menu? ingrese si/no ")
    if(menu == "si"):
        print("")
        print("regresando al menu, espere un momento")
        time.sleep(3)
        menu()
    if(menu == "no"):
        System.exit()

if __name__ == "__main__":
    menu()

1 个答案:

答案 0 :(得分:0)

在“regresarMenu”函数中,您正在使用名为menu的变量和名为menu的函数。你需要的是重命名其中一个;例如:

def regresarMenu():
    menu_option = raw_input("Desea regresar al menu? ingrese si/no ")
    if(menu_option == "si"):
        print("")
        print("regresando al menu, espere un momento")
        time.sleep(3)
        menu()
    if(menu_option == "no"):
        System.exit()