m0_62832806 2021-11-11 22:51 采纳率: 90%
浏览 22
已结题

请问如何输入多次,还能运行?如何解决没有被定义的问题? (本人刚学,不会)

i=0
c=0
d=0
i+=1
v=0
Gender=str(input("请输入您的性别:"))
h=float(input("请输入您的身高(m):"))
w=float(input("请输入您的体重(kg):"))
if Gender=="男":
    c+=1
elif Gender=="女":
    d+=1
def BMI():
    x=eval('w/h**2')
    print("您的BMI为",round(x,2))
    return x
BMI()
def VALIDATE(h,w):
    if h>3 or h<=0 or w<0:
        print("身高或体重数据异常,请重新输入")
x=eval('w/h**2')
s=0
s+=x
BMI=x
VALIDATE(h,w)
def BMI_JUDGE(BMI):
    if BMI<=18.4:
        return("偏瘦")
    elif 18.5<BMI<23.9:
        return("正常")
    elif 24.0<BMI<27.9:
        return("过重")
    elif BMI>=28.0:
        return("肥胖")
print("您的肥胖程度为:",BMI_JUDGE(BMI))
if BMI_JUDGE(BMI)=="肥胖":
    v+=1
a=str(input("输入#结束否则继续"))
if a!=str("#"):
    continue
else:
    print("已输入患者:",i,"人")
    if c==0:
        print("其中,男性:",0,"人")
    else:
        print("其中,男性:",c,"人")
    if d==0:
        print("女性:",0,"人")
    else:
        print("女性:",d,"人")
    print("人均BMI数值:",s/i)
    print("其中,肥胖患者为",v,"人")
    print("该人群肥胖率为",v/i)
    break
  • 写回答

1条回答 默认 最新

  • -Undefined_ 2021-11-11 22:58
    关注

    套在while循环里就可以了

    i=0
    c=0
    d=0    
    while True:
        v=0
        i+=1
        Gender=str(input("请输入您的性别:"))
        h=float(input("请输入您的身高(m):"))
        w=float(input("请输入您的体重(kg):"))
        if Gender=="男":
            c+=1
        elif Gender=="女":
            d+=1
        def BMI():
            x=eval('w/h**2')
            print("您的BMI为",round(x,2))
            return x
        BMI()
        def VALIDATE(h,w):
            if h>3 or h<=0 or w<0:
                print("身高或体重数据异常,请重新输入")
        x=eval('w/h**2')
        s=0
        s+=x
        BMI=x
        VALIDATE(h,w)
        def BMI_JUDGE(BMI):
            if BMI<=18.4:
                return("偏瘦")
            elif 18.5<BMI<23.9:
                return("正常")
            elif 24.0<BMI<27.9:
                return("过重")
            elif BMI>=28.0:
                return("肥胖")
        print("您的肥胖程度为:",BMI_JUDGE(BMI))
        if BMI_JUDGE(BMI)=="肥胖":
            v+=1
        a=str(input("输入#结束否则继续"))
        if a!=str("#"):
            continue
        else:
            print("已输入患者:",c+d,"人")
            if c==0:
                print("其中,男性:",0,"人")
            else:
                print("其中,男性:",c,"人")
            if d==0:
                print("女性:",0,"人")
            else:
                print("女性:",d,"人")
            print("人均BMI数值:",s/i)
            print("其中,肥胖患者为",v,"人")
            print("该人群肥胖率为",v/i)
            break
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月19日
  • 已采纳回答 11月11日
  • 创建了问题 11月11日

悬赏问题

  • ¥20 c语言写的8051单片机存储器mt29的模块程序
  • ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
  • ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
  • ¥50 rk3588板端推理
  • ¥250 opencv怎么去掉 数字0中间的斜杠。
  • ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
  • ¥250 paddleocr带斜线的0很容易识别成9
  • ¥15 电子档案元素采集(tiff及PDF扫描图片)
  • ¥15 flink-sql-connector-rabbitmq使用
  • ¥15 zynq7015,PCIE读写延时偏大