2017-02-23 2 views
0

Ich erhalte einen Fehler, der sagt, dass in Zeile 27, insgesamt nicht definiert ist. Um das vorher zu beheben, habe ich global zu den Zeilen 7 und 12 hinzugefügt, also habe ich versucht, es in Zeile 17 hinzuzufügen und es gibt mir immer noch einen Fehler. Irgendeine Idee, wie ich das beheben kann? Alle anderen Tipps oder Informationen zu meinem Code werden ebenfalls sehr geschätzt. Ich bin neu im Codieren. Ich arbeite in PythonWie definiert man eine Variable innerhalb einer Funktion in 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

Hilfe raus hier. Was ist Linie 27? –

+0

oh, tut mir leid. meine Zeilennummern sind sowieso alle durcheinander ... –

+0

der Fehler ist bei ... print ("BMI-Index:" + str (float (Runde (gesamt, 1)))) NameError: Name 'total' ist nicht definiert –

Antwort

0

Sie müssen global verwenden, wenn Sie eine globale Variable modifizieren. Sie müssen es nicht verwenden, wenn Sie nur die Variable lesen, solange die Variable definiert ist.

In diesem Fall Sie definieren nicht total überall, weil Ihr Code w und h() und printbmi() ruft aber nicht erscheint bmi() zu nennen, das der einzige Ort ist uns Sie speichern einen Wert total.

+0

AH HA !!! Vielen Dank!!! Das war mein Problem. Ich habe die Funktion nie aufgerufen. –

Verwandte Themen