我正在尝试从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();
}
答案 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个全都整数的参数(开始,结束,增量)。