height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
bmi = weight / pow(height, 2)
print("BMI 数值为:{:.2f}".format(bmi))
nat = ""
if bmi < 18.5:
nat = "偏瘦"
elif 18.5 <= bmi < 24:
nat = "正常"
elif 24 <= bmi < 28:
nat = "偏胖"
else:
nat = "肥胖"
print("BMI 指标为:国内'{0}'".format(nat))
程序设计IPO模式
I:Input 输入,程序的输入。
P:Process 处理,程序的主要逻辑。
O:Output 输出,程序的输出。
接下来,我们一起分析下这个程序IPO。
这句语句就是输入Input
height, weight = eval(input("请输入身高(米)和体重\(公斤)[逗号隔开]: "))
这里面用到了一个eval函数,我们可以简单的理解为eval去除单引号。这样,本来是输入的是字符,去掉引号后,就是数字类型了 。
这句话是P,Process 处理
bmi = weight / pow(height, 2)
if bmi < 18.5:
nat = "偏瘦"
elif 18.5 <= bmi < 24:
nat = "正常"
elif 24 <= bmi < 28:
nat = "偏胖"
else:
nat = "肥胖"
这句话是O,Output 输出
print("BMI 数值为:{:.2f}".format(bmi))
print("BMI 指标为:国内'{0}'".format(nat)
下面这个是温度转换程序,我们也可以试着分析下IPO。
#TempConvert.py
TempStr=input("请输入带有符号的温度值:")#赋值TempStr,括号里面的是提示
if TempStr[-1] in ['F','f']:#假如字符串最后一个字符是F或者f
C=(eval(TempStr[0:-1])-32)/1.8#第一个字符到最后一个字符之前的所有字符,也就是温度值,eval函数是脱掉字符串结构,运行公式
print("转换后的温度是{:.2f}C".format(C))、#输出结果,保留最后两位小数,是C的格式化
elif TempStr[-1] in ['C','c']:#else if最后一个字符是C或者c
F=1.8*eval(TempStr[0:-1])+32#这个括号加括号的表达,其实从里到外的顺序来看就不会混乱
print("转换后的温度是{:.2f}F".format(F))#输出华氏温度
else:#以上两个if都不符合
print("输入格式错误")#输出提示文字