我正在尝试将列表中的两个整数相除。每当我将这两个整数相除时,我都会得到零。无论列表中使用什么整数,我总会得到零。
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
我尝试使用//
。如果我使用了两个不包含在此列表中的规则整数,则它可以正常工作,因此我认为它必须对列表函数有所帮助。
编辑:这是user_sides
def user_sides(x,y,z):
side1 = x
side2 = y
side3 = z
print(side1, side2, side3)
return side1, side2, side3
答案 0 :(得分:0)
在Python 2中整数除以Integer始终是Integer。
print 5/2
结果:2
但是,如果将5转换为float,则结果为2.5
print 5.0/2
结果:2.5
答案 1 :(得分:0)
您的代码可以简化,并且出现的错误可能是因为您使用的是Python 2.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
来开始:
sideList = [6, 7, 8]
顺便说一下,您所有的代码都只是这样做:
def angles_for_triangle():
return 7 / 8