2017-02-23 15 views
0

Я получаю сообщение об ошибке, указанное в строке 27, общее значение не определено. Чтобы исправить это ранее, я добавил global в строки 7 и 12, поэтому я попытался добавить его в строку 17, и он все еще дает мне ошибку. Любая идея, как я могу это исправить? Любые другие советы или информация о моем коде также приветствуются. Я очень новичок в кодировании. Я работаю в PythonКак определить переменную внутри функции в python

import math 
import sys 
print("King's BMI Calculator") 


def h(): 
    global height 
    height=float(input("Please enter student's height in inches:")) 
    return height 

def w(): 
    global weight 
    weight=float(input("Please enter student's weight in pounds:")) 
    return weight 

def bmi(): 
    global total 
    total=((str(weight) * 703)/(str(height) * str(height))) 
    return total 

def printbmi(): 
    print(name + "'s BMI Profile") 
    print("Height:", str(height), "inches") 
    print("Weight:", str(weight), "lbs") 
    print("BMI Index:" + str(float(round(total, 1)))) 
    return 

def main(): 
    h() 
    w() 
    printbmi() 

while True: 
    name = input("Please enter student's name or press 0 to quit:") 
    if name == "0": 
     break 

    main() 
+0

Помогите нам прочь. Что такое строка 27? –

+0

о, извините, что. мои номера строк все перепутаны ... –

+0

ошибка в ... print ("BMI Index:" + str (float (round (total, 1)))) NameError: name 'total' не определен –

ответ

0

Вы должны использовать global, когда вы изменяете глобальную переменную. Вам не нужно использовать его, когда вы просто читаете переменную, пока эта переменная определена.

В этом случае, вы не определяете сумму в любом месте, потому что ваш код вызывает w и h() и printbmi(), но не кажется, называют bmi(), что это единственное место, вы сохраняете значение total.

+0

AH HA !!! Спасибо, много! Это была моя проблема. Я никогда не называл функцию. –