You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

if块内的print语句始终不执行?Python代码问题求助

问题:体重维持计算器代码无法打印结果

我编写了一段体重维持计算器的Python代码,运行时无论输入活动水平为0、1还是2,if块内的caloriesUsedCurrently始终无法打印,且无报错信息。代码如下:

print("Welcome to the weight maintenance calculator!")
startWeight = float(input("Input your start weight, in kilograms: "))
height = float(input("Enter your height in centimetres: "))
sex = input("Enter your sex (M/F): ")
age = float(input("Enter your age: "))
dailyActivity = input("Rank your activity level, from 0-5: ")

if ((sex == "M") or (sex == "m")):
    startWeightBmr = int((10 * startWeight) + (6.25 * height) - (5 * age) + 5)
    if (dailyActivity == 0):
        caloriesUsedCurrently = startWeightBmr + 300
        print(caloriesUsedCurrently)
    if (dailyActivity == 1):
        caloriesUsedCurrently = startWeightBmr + 350
        print(caloriesUsedCurrently)
    if (dailyActivity == 2):
        caloriesUsedCurrently = startWeightBmr + 400
        print(caloriesUsedCurrently)

解决方法

问题核心:input()函数获取的输入默认是字符串类型,而你在判断条件里把它和整数0/1/2做比较,两者类型不匹配,条件永远不成立,所以代码块不会执行。

有两种直接的修复方式:

方式一:将输入转为整数类型

修改dailyActivity的输入语句,把输入转成整数:

dailyActivity = int(input("Rank your activity level, from 0-5: "))

方式二:将判断条件中的数字改为字符串

保持输入为字符串,把判断里的整数换成对应的字符串:

if (dailyActivity == "0"):
    caloriesUsedCurrently = startWeightBmr + 300
    print(caloriesUsedCurrently)
if (dailyActivity == "1"):
    caloriesUsedCurrently = startWeightBmr + 350
    print(caloriesUsedCurrently)
if (dailyActivity == "2"):
    caloriesUsedCurrently = startWeightBmr + 400
    print(caloriesUsedCurrently)

额外优化建议

  1. 用elif代替多个独立if,避免不必要的条件判断:
if dailyActivity == 0:
    caloriesUsedCurrently = startWeightBmr + 300
elif dailyActivity == 1:
    caloriesUsedCurrently = startWeightBmr + 350
elif dailyActivity == 2:
    caloriesUsedCurrently = startWeightBmr + 400
print(caloriesUsedCurrently)
  1. 补充女性(F/f)的BMR计算逻辑,当前代码只处理了男性情况;
  2. 增加对活动等级超出0-5范围的异常提示,避免无输出的情况。

内容的提问来源于stack exchange,提问作者frosted flakes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 07:25:18