【问题标题】:Python - How to use a float in a "if x in range" statementPython - 如何在“if x in range”语句中使用浮点数
【发布时间】:2020-01-16 00:10:09
【问题描述】:

我正在尝试编写一个将浮点数作为范围的 if 语句。

谢谢。

x = 8.2

if x in range(0, 4.4):
    print('one')
if x in range(4.5, 8):
    print('two')
if x in range(8.1, 9.9):
    print('three')
if x > 10:
    print('four')

我也试过了,没用

if x > 0 <= 4.4

【问题讨论】:

  • if 0 &lt;= x &lt;= 4.4
  • 如果x 是 4.45,你想要什么输出?您的范围并未涵盖所有非负实数。
  • 还有,x &gt; 0 &lt;= 4.4的意思是x &gt; 0 and 0 &lt;= 4.4,后者当然无趣。您需要使用@Barmar 建议的链式比较语法。

标签: python if-statement int range


【解决方案1】:

使用

   if 0 < x <= 4.4:

x 在中间。相当于

   if 0 < x and x <= 4.4:

range 不适合该任务。

【讨论】:

    【解决方案2】:

    您不需要range()。只需使用比较,并使用elif 以便范围是互斥的。

    if x < 4.5:
        print('one')
    elif x < 8:
        print('two')
    elif x < 10:
        print('three')
    else:
        print('four')
    

    这也解决了您的范围之间存在差距的问题。

    【讨论】:

    • x=4.56 或 x=8.01 等值会不会有问题?
    • 不,这就是我没有在范围两端设置边界的原因。
    • 4.56 将打印two8.01 将打印three
    • x == 10时应该打印什么?它不在8.1 to 9.9 范围内,但也不在&gt; 10 范围内。
    【解决方案3】:
    x = 8.3
    
    if 0 <= x <= 4.4:
        print('one')
    if 4.5 <= x <= 8:
        print('two')
    if 8.1 <= x <= 9.9:
        print('three')
    if x > 10:
        print('four')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-07-07
      • 1970-01-01
      • 2016-05-25
      • 2019-05-28
      • 1970-01-01
      • 1970-01-01
      • 2016-10-03
      • 2012-12-22
      相关资源
      最近更新 更多