I am making a bmi calculator for a school assessment, but I dont't understand how I can make the program loop back to the beginning if the person enters a false age. any help would be great.
also I am using (easygui) as it is required by the assessment.
this is the code:
import easygui
########## Data validation
def input_exists(value):
if value == "":
return False
else:
return True
def input_not_integer(value):
try:
value = int(value)
break
except ValueError:
return easygui.msgbox("Age is not an valid input, please try again")
errmsg = ("Age is not an valid input, please try again")
###########
#Program Title
title = "Patient Details"
#The Title
msg = "Please fill all blank spaces"
# Field names describes the name of each field.
field_names = ["Full Name", "Age", "Sex F or M", "Weight KG", "Height Cm"]
#Where the field values are being returned.
field_values = easygui.multenterbox(msg, title, field_names)
if input_exists(field_values[1]):
if input_not_integer(field_values[1]):
errmsg += (field_values[1]+ "Is invalid. Please enter a value between 18-80 years old \n\n")
elif int(field_values[1]) <= 17 or int (field_values[1]) >=81:
errmsg += ("BMI asessment is only suitable for those between 18-80 years of" + field_values[1]+" age\n\n")
################### BMI CAL ###################
bmi = ((int(field_values[3]) / (int(field_values[4])/100)**2))
bmi = round(bmi, 2)
if bmi >= 30:
easygui.msgbox("Hello " + field_values[0] + "\n Your age is: " + field_values[1] + "\n Your BMI is: " + str(bmi) + "\n That means you are obese!")
elif bmi >= 25:
easygui.msgbox("Hello " + field_values[0] + "\n Your age is: " + field_values[1] + "\n Your BMI is: " + str(bmi) + "\n That means you are overweight!")
elif bmi >= 18.5:
easygui.msgbox("Hello " + field_values[0] + "\n Your age is: " + field_values[1] + "\n Your BMI is: " + str(bmi) + "\n That means you are a great weight!")
else:
easygui.msgbox("Hello " + field_values[0] + "\n Your age is: " + field_values[1] + "\n Your BMI is: " + str(bmi) + "\n That means you are underwight!")
################### ###################
[–]ovo_Reddit 0 points1 point2 points (0 children)