0

我是一个 Python 新手,但我一直在寻找解决方案,但我很困惑。

我定义了一个接受多个参数的函数:

def func(arg1, arg2, arg3):

第一个参数将是一个字符串,但接下来的两个总是整数。我需要构建以下for循环。

for x in range(0, arg2 / 2):

问题是arg2默认为类型float,因此我得到以下信息:
TypeError: 'float' object cannot be interpreted as an integer

我努力了:

for x in range(0, int(arg2) / 2): 

但是出于某种原因,同样的事情也会发生。如何指定arg2应将其视为整数,或者如何将其重新解释为整数?

4

2 回答 2

3

在 Python 3.x 中:

当你arg2 / 2会得到一个浮动。如果你想要一个 int 试试arg2 // 2

例如2 / 2 = 1.0但是2 // 2 = 1

但是这样做会失去准确性,但是由于您想要一个 int 我假设您无论如何都想向上或向下舍入。

在 python 2.x 中 / 默认是一个 int 除法;要获得浮点除法,您必须确保其中一个数字是浮点数。

编辑:正如@martineau 指出的那样,在 Python 2.x 和 3.x 中,如果分子或分母是浮点数,/ 将进行浮点除法, // 将产生浮点结果。为了解决这个问题,将其转换为 int 或确保它是 int... 2.0 / 2 = 1.0and 2.0 // 2 = 1.0and 2 / 2.0 = 1.0and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and and 2 // 2.0 = 1.0 2.5 / 2 = 1.25and 2.0 // 2 = 1.0and 2 / 2.5 = 0.8and2 // 2.5 = 0.0

于 2016-09-02T14:08:32.750 回答
0

尝试四舍五入整个公式

for x in range(int(arg2/2)) 
于 2016-09-02T14:08:32.317 回答