如何在python中使用具有范围函数的float变量?

时间:2018-05-16 08:36:00

标签: python python-2.7 range

说明 我有三个变量a,x和y。我想应用以下内容,如果变量a在范围(x,y)中打印变量

代码:

-f

错误(当然):

a = "0.50"
x = "-14.40"
y = "0.50"

for a in range(int(x), int(y)):
    print a

Pythonista我需要你的帮助!!

3 个答案:

答案 0 :(得分:1)

Python 2 range函数与此任务无关。您只需要将这些字符串转换为浮点数并进行简单的比较测试。例如,

a = "0.50"
x = "-14.40"
y = "0.50"

afloat = float(a)
if float(x) <= afloat and afloat <= float(y):
    print a  

<强>输出

0.50

使用Python的比较链可以更简单(更有效)地编写。

a = "0.50"
x = "-14.40"
y = "0.50"

if float(x) <= float(a) <= float(y):
    print a

FWIW,在Python 3中,range对象可以用于测试范围的成员资格,但它对您的情况不会有用。例如,

>>> r = range(1, 10, 2)
>>> list(r)
[1, 3, 5, 7, 9]
>>> 3 in r
True
>>> 4 in r
False
>>> 3.5 in r
False

答案 1 :(得分:1)

来自评论

  

我需要检查是否在x和y的范围内。

然后做

a = "0.50"
x = "-14.40"
y = "0.50"

if float(x) <= float(a) <= float(y):  # checks a is between x and y (inclusive)
     # do something

range做了一些非常不同的事情。它用于创建我们可以在for循环中使用的迭代器,如下所示:

for i in range(4):
    print(i * 2)
0
2
4
6

答案 2 :(得分:0)

您可以使用numpy arange。

import numpy as np
r = np.arange(-14.4,0.5, 0.5)

def isinside(x):
if x in r:
    print ("x")
else:
    print ("x no in a")

isinside(-12)

返回

x no in a    

如果您要打印整个系列,则

print ([round(x) for x in r])# round to avoid long numbers

更多信息https://pynative.com/python-range-for-float-numbers/