我如何用小数做一个for



def f(x):
result = x**2+(x/2)
return(result)

for x in range(0.1, 0.10, 0.001):
print(f(x))

这是我在python中的代码,但显示以下错误:类型错误:"float"对象不能解释为整数

如果需要使用浮动范围。

一种方法是从Numpy导入arange

from numpy import arange
def f(x):
result = x**2+(x/2)
return(result)

for x in arange(0.1, 0.10, 0.001):
print(x)

注意:在您的情况下,开始和结束都是相同的值(0.1(,因此不会产生输出。请尝试更改值以产生输出。

使用一系列整数,并进行算术运算,将整数映射到所需的浮点值中。例如,对于相隔0.001的浮点值,可以使用连续整数并除以1000。

使用一个整数范围并将其缩放到所需的浮点值。

例如:

def f(x):
result = x**2+(x/2)
return(result)
for n in range(10,21):
x = n * .001
print(f'{x:.3f} {f(x):.6f}')
0.010 0.005100
0.011 0.005621
0.012 0.006144
0.013 0.006669
0.014 0.007196
0.015 0.007725
0.016 0.008256
0.017 0.008789
0.018 0.009324
0.019 0.009861
0.020 0.010400

rang(n(函数的输入应该是一个整数,它返回0,1,2。。。,n-1,如果您的步长为1。所以,如果你知道你的算法需要多少次迭代,你可以使用for和range((和整数输入。此外,你可以列出f的输入(x(,这样就可以用这种方式:

for x in my_list:
print(f(x))

或者你可以用这种方式使用:

x = initial_valuse_of_x
while x <= limit_of_x:
print(f(x))
x = x + step

例如,如果您的输入在0.2到1的范围内,步骤为0.2:

x: 02, 0.4, 0.6, 0.8, 1
initial_valuse_of_x = 0.2
limit_of_x = 1
step = 0.2

编辑:正如评论中提到的,浮动增量可能会导致while((解决方案中的不精确结果。

最新更新