如何指定参数类型?

时间:2016-09-02 14:05:33

标签: python python-3.x arguments formats

我非常喜欢Python新手,但我已经找到了解决方案而且我很难过。

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

library(nza)
Error in library(nza) : there is no package called ‘nza’

第一个参数是一个字符串,但接下来的两个字节总是整数。我需要构建以下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): 应该作为整数,或者如何将其重新解释为整数?

2 个答案:

答案 0 :(得分:3)

在Python 3.x中:

当你arg2 / 2时,你会得到一个浮动。如果你想尝试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.02.0 // 2 = 1.0以及2 / 2.0 = 1.02 // 2.0 = 1.0 2.5 / 2 = 1.252.0 // 2 = 1.0以及2 / 2.5 = 0.82 // 2.5 = 0.0

答案 1 :(得分:0)

尝试围绕整个公式

for x in range(int(arg2/2))