我非常喜欢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):
应该作为整数,或者如何将其重新解释为整数?
答案 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.0
和2.0 // 2 = 1.0
以及2 / 2.0 = 1.0
和2 // 2.0 = 1.0
2.5 / 2 = 1.25
和2.0 // 2 = 1.0
以及2 / 2.5 = 0.8
和2 // 2.5 = 0.0
答案 1 :(得分:0)
尝试围绕整个公式
for x in range(int(arg2/2))