【问题标题】:How to use decimal in range ```range()```? [duplicate]如何在范围```range()```中使用小数? [复制]
【发布时间】:2020-11-12 11:51:32
【问题描述】:
#a bmi converter

a = input("What is your mass unit,type'kg'or'lb' : ")

ax = float(input("enter mass"))

b = input("What is your height unit,type'ft'or'cm' : ")

bx = float(input("enter height"))

if a == "lb":
    ax=ax*0.453592
elif a == "kg":
    ax=ax    
else:
    print("invalid input")

if b == "ft":
    bx=bx*30.48
elif b == "cm":
    bx=bx*0.01
else:
    print("invalid input")

bmi = ax/(bx**2)
w=int
if bmi <18.5:
    w="underweight"
elif bmi==range(18.5,24.9):
    w="normal weight"
elif bmi==range(25,29.9):
    w="overweight"
elif bmi>30:
    w="obese"

print ("your bmi is",bmi,w)

这给出了以下错误:

TypeError: 'float' object cannot be interpreted as an integer

所以我需要小数范围

但它不接受 int 值

【问题讨论】:

  • 注意:“十进制”是以 10 为底的表示形式。在您的代码中,您拥有的唯一十进制数是输入字符串。在内部,您有二进制(基数 2)表示。顺便说一句:下次请提取minimal reproducible example,上面的大部分代码都不需要证明问题。作为新用户,也可以使用tour 并阅读How to Ask
  • bmi 不能等于一个范围,而是包含在一个范围内。

标签: python python-3.x python-2.7


【解决方案1】:

替换

elif bmi==range(18.5,24.9):
    w="normal weight"

elif 18.5 <= bmi <= 24.9:
    w="normal weight"

【讨论】:

  • 如果你至少可以解释为什么操作应该这样做会很好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-20
  • 1970-01-01
  • 2019-03-31
  • 1970-01-01
相关资源
最近更新 更多