关于python的问题

题目要求挨个求出bmi

img


这个是我想的,但是运行不出来,想问一下应该怎么改?

img


def f(m,n):
    BMI = round(n/m**2,2)
    if BMI < 18.5:
        print("BMI的值为{},属于偏瘦的类型".format(BMI))
    elif 18.5 <= BMI < 24:
        print("BMI的值为{},属于正常的类型".format(BMI))
    elif 24 <= BMI < 28:
        print("BMI的值为{},属于偏胖的类型".format(BMI))
    else:
        print("BMI的值为{},属于肥胖的类型".format(BMI))


count = 0
print("请输入人员信息,身高为0时结束。")
while True:
    count += 1
    m = eval(input("请输入第{}位的身高(米):").format(count))
    if m == 0:
        break
    n = eval(input("请输入第{}位的体重(公斤):").format(count))

    f(m,n)
        

img

类似这样

def f(m, n):
    BMI = round(n/m**2,2)
    if BMI < 18.5:
        print("BMI的值为{},属于偏瘦的类型".format(BMI))
    elif 18.5 <= BMI < 24:
        print("BMI的值为{},属于正常的类型".format(BMI))
    elif 24 <= BMI < 28:
        print("BMI的值为{},属于偏胖的类型".format(BMI))
    else:
        print("BMI的值为{},属于肥胖的类型".format(BMI))

count = 0
print("请输入人员信息,身高为0时结束。")    
while (1):
    count+=1
    m = eval(input("请输入第{}位的身高(米):".format(count)))
    n = eval(input("请输入第{}位的体重(公斤):".format(count)))
    if m == 0:
        break
    f(m,n)

参数输入放whie循环里面

4行改成while m!= 0:
然后5~8行删掉,改一下剩下的缩进。
第四行前面插一个global count


count = 0
print("请输入人员信息,身高为0时结束。")
while True:
    count += 1
    m = eval(input("请输入第{}位的身高(米):").format(count)) 
    if m == 0:
        break
    else:
        n = eval(input("请输入第{}位的体重(公斤):").format(count))
        BMI = round(n/m**2,2)
        if BMI < 18.5:
            print("BMI的值为{},属于偏瘦的类型".format(BMI))
        elif 18.5 <= BMI < 24:
            print("BMI的值为{},属于正常的类型".format(BMI))
        elif 24 <= BMI < 28:
            print("BMI的值为{},属于偏胖的类型".format(BMI))
        else:
            print("BMI的值为{},属于肥胖的类型".format(BMI))

稍微改了下