Python 为什么两个列表项的除法总是等于零?
我试图将列表中的两个整数除法。每当我除以这两个整数,我得到零。无论我在列表中使用什么整数,我总是得到零Python 为什么两个列表项的除法总是等于零?,python,Python,我试图将列表中的两个整数除法。每当我除以这两个整数,我得到零。无论我在列表中使用什么整数,我总是得到零 def sideList_func(): lengths = user_sides(6.0, 7.0, 8.0) sideList = [] for i in lengths: sideList.append(int(i)) return sideList def angles_for_triangle(): side
def sideList_func():
lengths = user_sides(6.0, 7.0, 8.0)
sideList = []
for i in lengths:
sideList.append(int(i))
return sideList
def angles_for_triangle():
sideList = sideList_func()
angle = sideList[1]/sideList[2]
return angle
我试过使用/
。如果我使用两个不属于这个列表的正则整数,它工作得很好,所以我认为它必须与我的列表函数有关
编辑:这是用户界面
def user_sides(x,y,z):
side1 = x
side2 = y
side3 = z
print(side1, side2, side3)
return side1, side2, side3
在Python 2中,整数除以整数始终是整数
print 5/2
结果:2
但是,如果将5转换为float,将得到结果2.5
print 5.0/2
结果:2.5您的代码可以简化,您得到的错误可能是因为您使用的是Python2.x的整数除法。试试这个:
# this line will get your decimals back :)
from __future__ import division
def sideList_func():
return [int(i) for i in (6.0, 7.0, 8.0)]
def angles_for_triangle():
sideList = sideList_func()
return sideList[1] / sideList[2]
我真的不认为有必要使用sideList_func
,如果这些值是固定的并且事先知道的,那么您可以简单地将它们写成int
s开始:
sideList = [6, 7, 8]
顺便说一句,您所有的代码都只是这样做的:
def angles_for_triangle():
return 7 / 8
user\u-sides
的定义是什么?user\u-sides
是无用的,顺便说一句,sideList\u-func
。。直接使用list
就行了……是的,我知道,这就是我最初没有把它放上去的原因。我计划稍后对其进行更改。实际上,三角形的角度将7
除以8
,在Python 2中为0。这可能就是问题所在。