[Tutor] BMI calc

Dave Angel davea at davea.name
Wed Mar 13 03:08:56 CET 2013


On 03/12/2013 09:46 PM, Mark Lawrence wrote:
> On 13/03/2013 00:05, Soliman, Yasmin wrote:
>> Hello all,
>>
>> I'm new to python and its been a stuggle so far. I'm attempting to
>> create a BMI calculator in Wing 101 4.1. I keep getting syntax errors:
>>
>> def calc_BMI(weight,height):
>>      return (weight/(height*height))*703.0
>> if bmi <=18.5:
>>      print 'underweight'
>> elif bmi >= 18.5 and bmi <=24.9:
>>          print 'normal weight'
>> elif bmi >=25 and bmi <=29.9:
>>              print 'overweight'
>> elif bmi >=30:
>>                  print 'obese'
>>
>> Also, height should be converted to inches and I have not the
>> slightest clue how to so. Any help would be much appreciated.
>> _
>>
>
> If you're using Python 3 you'll get syntax errors as print is a
> function, not a statement as in Python 2.  Is this your problem?  If not
> please cut and paste the exact syntax error for us to see.  Then we'll
> sort the rest of the problems :)
>

As Mark implies, tell us exactly what Python version you're using, and 
copy/paste the entire error message, including traceback.

For example, when I run it on 3.3, I have:

davea at think2:~/temppython$ python3.3 soliman.py
   File "soliman.py", line 6
     print 'underweight'
                       ^
SyntaxError: invalid syntax


Also, could you tell us your experience level?  You've defined a 
function, but you haven't called it.  And yet you're apparently trying 
to use the results of calling it.

As for converting height to inches, that depends on what you started 
with.  Since you're using the English version of the formula, you should 
already have inches and pounds before calling that function.

So perhaps in addition to missing the code for inputting the values 
(perhaps the raw_input function), you're also missing the conversion 
from "something" to inches.  How are you getting the raw numbers, and 
what units are they in?

If the raw numbers are in meters and kg, then you'd want to remove the 
multiply by 703.  Or you could convert from meters to inches by 
multiplying by 39.?  (look up the exact number).  And from kg to pounds 
by a similar multiply by something like 2.2

-- 
DaveA


More information about the Tutor mailing list