我不明白这个错误:TypeError:'float'对象不能解释为整数

时间:2016-07-01 05:47:46

标签: python python-3.x

我正在尝试从here运行此代码:

Traceback (most recent call last):
  File "/Users/xmizer/PycharmProjects/StockProject/venv/hello_world.py", line 157, in <module>
    f.serach_for_each_alphabet()
  File "/Users/xmizer/PycharmProjects/StockProject/venv/hello_world.py", line 122, in serach_for_each_alphabet
    self.get_total_sym_for_each_search(alphabet)
  File "/Users/xmizer/PycharmProjects/StockProject/venv/hello_world.py", line 109, in get_total_sym_for_each_search
    for page_no in range(0,total_page_to_scan+1,1):
TypeError: 'float' object cannot be interpreted as an integer

我一直在收到这个错误。我做了一些谷歌搜索,仍然不知道这意味着什么:

public static string getLastName(string fullname)
{
    string lastName = fullname.Split(' ').LastOrDefault();
}

4 个答案:

答案 0 :(得分:1)

final_search_page_count = total_search_qty/20

我不知道python,但问题似乎是上面的行应该向上舍入到最接近的整数。

这是一个较小的案例,存在同样的问题:

range(1, 3.33, 1)

答案 1 :(得分:1)

range()函数需要一个整数,而total_page_to_scan是一个浮点值。您应该找到一种方法来返回get_total_page_to_scan_for_alphabet()中的int:

def get_total_page_to_scan_for_alphabet(self, alphabet):
    ...
    return int(final_search_page_count)

另外,你在serach_for_each_alphabet()中做了一个小错字。

答案 2 :(得分:1)

您正在使用DrawCircle中为Python 2编写的脚本。在Python 3中,除法运算符产生一个整数,在Python 2中产生3

Python 2

float

虽然, Python 3

>>> 20 / 10
2
>>> range(0, 20/10)
[0, 1]

使用>>> 20 / 10 2.0 >>> range(0, 20/10) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'float' object cannot be interpreted as an integer 运行脚本或更改运算符:

Python 2

为:

final_search_page_count = total_search_qty/20

结果产生final_search_page_count = total_search_qty // 20

答案 3 :(得分:1)

如Jim所述,您可以使用以下内容来确保整数结果。

final_search_page_count = total_search_qty // 20

或者,您可以使用

final_search_page_count = int(total_search_qty / 20)

这很重要,因为range()需要3个全都整数的参数(开始,结束,增量)。