【问题标题】:My code is returning the correct string, but there is a "None" in the middle [duplicate]我的代码返回正确的字符串,但中间有一个“无”[重复]
【发布时间】:2021-11-11 20:42:26
【问题描述】:

第一个代码块返回以下内容: “你的 BMI 是 x。 没有,你是y"

我不确定为什么没有出现,我可以使用下面的注释代码解决它,但我想知道为什么这种方式不起作用。

在我忘记复制的一行中编辑

height = float(input("enter your height in m: "))
weight = float(input("enter your weight in kg: "))

bmi = round(weight / height **2)
bmi_print = print(f"Your BMI is {bmi}.")

if bmi <= 18.5:
  print(f"{bmi_print}, You are underweight.")
elif bmi <= 25:
  print(f"{bmi_print}, You are a normal weight.")
elif bmi <= 30:
  print(f"{bmi_print}, You are slightly overweight.")
elif bmi <= 35:
  print(f"{bmi_print}, You are obese.")
else:
  print(f"{bmi_print}, You are clinically obese.")

如果我按照下面的方式做,我可以解决它,但我想知道为什么上面的方法不起作用

# if bmi <= 18.5:
#   print(f"Your BMI is {bmi}. You are underweight.")
# elif bmi <= 25:
#   print(f"Your BMI is {bmi}. You are a normal weight.")
# elif bmi <= 30:
#   print(f"Your BMI is {bmi}. You are slightly overweight.")
# elif bmi <= 35:
#   print(f"Your BMI is {bmi}. You are obese.")
# else:
#   print(f"Your BMI is {bmi}. You are clinically obese.")

【问题讨论】:

  • 最好硬编码身高和体重的值,然后发布脚本的输出。我们不必猜测输入应该是什么或结果应该是什么样子。

标签: python


【解决方案1】:

改变这个:

bmi_print = print(f"Your BMI is {round(bmi)}.")

收件人:

bmi_print = f"Your BMI is {round(bmi)}."

print 函数返回None。所以,当你打印它时,它会打印None

【讨论】:

    【解决方案2】:

    print(f"Your BMI is {bmi}.") 打印字符串并返回None。然后将 None 分配给 bmi_print。就像你做的一样

    print(f"Your BMI is {bmi}.")
    bmi_print = None
    

    print 总是返回 None。它的工作是将其输出写入对象之类的文件。它甚至可能不会构建整个字符串,而是选择以块的形式发出其结果字符串。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-07
      • 2015-05-19
      • 1970-01-01
      • 1970-01-01
      • 2014-05-28
      • 2021-04-10
      • 2015-12-24
      • 2013-10-07
      相关资源
      最近更新 更多