我试图创建数独游戏,但我收到了这个错误。我认为这是因为range
行;也许我做错了,但range(int(numb/numb+3))
也没有用。谢谢您的帮助。
File "D:\Games\Python\sudokuV2Test2.py", line 83, in estDansSousMatrice
for i in range(bl, bl+3):
TypeError: 'float' object cannot be interpreted as an integer"
这是代码:
def estDansSousMatrice(grille,l,c,v):
bc=(c/3)*3
bl=(l/3)*3
for i in range(bl, bl+3):
for j in range(bc,bc+3):
if grille[i][j]==v:
return True
return False
答案 0 :(得分:1)
由于您之前将bc
和bl
分开,然后乘以3,请说我们输入c = 3
和l = 3
两者的结果为{{1} }
而是3.0
和for i in range(int(bl),int(bl)+3):
答案 1 :(得分:0)
要明确的是,您可以避免转换回int
,而不是首先将它们浮动。 //
运算符执行整数除法,截断结果。这使您可以保留几乎所有原始代码。
def estDansSousMatrice(grille,l,c,v):
bc=(c//3)*3 # Different
bl=(l//3)*3 # Different
for i in range(bl, bl+3):
for j in range(bc,bc+3):
if grille[i][j]==v:
return True
return False