相关疑难解决方法(0)

Python部门

我试图将一组数字从-100标准化为0到10-100的范围,并且只是注意到即使没有变量,也没有评估我期望它的方式:

>>> (20-10) / (100-10)
0
Run Code Online (Sandbox Code Playgroud)

浮动部门也不起作用:

>>> float((20-10) / (100-10))
0.0
Run Code Online (Sandbox Code Playgroud)

如果除法的任何一方被强制转换为浮点数,它将起作用:

>>> (20-10) / float((100-10))
0.1111111111111111
Run Code Online (Sandbox Code Playgroud)

第一个示例中的每一侧都评估为int,这意味着最终答案将被转换为int.因为0.111小于.5,所以它会变为0.在我看来,这不是透明的,但我想这就是它的方式.

解释是什么?

python math python-2.x

129
推荐指数
5
解决办法
41万
查看次数

为什么这个部门没有正确执行?

我在Python中有一个奇怪的问题:除法没有正确执行:

print pointB[1]
print pointA[1]
print pointB[0]
print pointA[0]
print  (pointB[1]-pointA[1]) / (pointB[0]-pointA[0])
Run Code Online (Sandbox Code Playgroud)

这些是结果:

100
50
100
40
0
Run Code Online (Sandbox Code Playgroud)

谢谢

python division python-2.x

7
推荐指数
2
解决办法
5883
查看次数

基本的python算术 - 除法

我有两个变量:count,我的过滤对象的数量,以及per_page的常量值.我想通过per_page除以计数并得到整数值,但无论我尝试什么 - 我得到0或0.0:

>>> count = friends.count()
>>> print count
1
>>> per_page = 2
>>> print per_page
2
>>> pages = math.ceil(count/per_pages)
>>> print pages
0.0
>>> pages = float(count/per_pages)
>>> print pages
0.0
Run Code Online (Sandbox Code Playgroud)

我做错了什么,为什么math.ceil给出浮点数而不是int?

python math python-2.x

6
推荐指数
2
解决办法
2万
查看次数

使用Python中的递归计算exp(x)

我正在尝试使用递归来计算e ^ x,e ^ x = e ^(x/2)*e ^(x/2),并且e ^ x的三阶Maclaurin扩展和脚本保持返回1. I我不是在寻找更高精度的解决方案,只是想了解脚本出错的地方:)

我的想法是,当函数值低于限制时,如果有足够的迭代,它应该以(1 + x/N +(x/N)^ 2/2)^ N结束.

def exp(x):
      if abs(x)<0.0001:
            return 1+x+x**2/2
      else:
            y=exp(x/2)
            return y*y
Run Code Online (Sandbox Code Playgroud)

python math recursion exp

5
推荐指数
1
解决办法
547
查看次数

python中的简单数学不起作用?

我刚开始学习python,我写了这三行代码:

points = 49
total = points / 50 * 500 + 40
print "omg wtf ", total
Run Code Online (Sandbox Code Playgroud)

而且我预计输出会像530一样,但相反,无论我做什么,我都会得到40.我尝试将total初始化为0,将赋值转换为int,我抛出一个括号括号,但没有任何效果.我很困惑......有人可以帮我/告诉我到底发生了什么事吗?

python math

3
推荐指数
2
解决办法
1140
查看次数

Python数学输出不正确

可能重复:
为什么这个分区在python中不起作用?

我遇到的一个简单问题(我想)以下声明:

    print (4950*8)/(((4950*8)/10000000*(1538/1460))+0.1/1000)/1000
Run Code Online (Sandbox Code Playgroud)

给我396000.0.

但在计算器上我得到9270.614192621.

如果有人可以在代码中指出我做错了什么.

谢谢.

python

1
推荐指数
1
解决办法
121
查看次数

强制Python计算为double

我想在Python中打印一个double.但它不起作用,我不知道为什么.

我的代码:

test = 3000 / (1500 * 2000)
print str(test)
Run Code Online (Sandbox Code Playgroud)

如果我做以下事情,我总是得到一个0而不是一个0.001:

test = 3000 / (1500 * 2000)
print '%.10f' % test
Run Code Online (Sandbox Code Playgroud)

我得到了一个0.000000000而不是0.001.

我怎么告诉Python这应该是双倍的?

python

1
推荐指数
1
解决办法
6628
查看次数

标签 统计

python ×7

math ×4

python-2.x ×3

division ×1

exp ×1

recursion ×1