【发布时间】:2021-12-29 16:24:47
【问题描述】:
我的代码 (Jupyter) 有问题。有障碍物的有序图案真空吸尘器。我正在从文件中加载一个数组(如果需要,请参见图片)
那么我有一个函数:
x_lim = 9
y_lim = 9
def ordered_move(x,y,gulv):
if gulv[x,y] == 0:
if x < 9:
x +=1
return (x,y)
if x == x_lim:
y +=1
return (x,y)
if gulv[x, y] > 0:
x == 0
y += 1
return (x,y)
if x == 9 and y == 9:
x == 6
y == 3
x += 1
return (x,y)
if x == 9 and y == 3:
x == 7
y == 4
x += 1
return (x,y)
if x == 9 and y == 4:
x == 6
y == 5
x += 1
return (x,y)
if x == 9 and y == 5:
x == 7
y == 6
x += 1
return (x,y)
if x == 9 and y == 6:
x == 6
y == 7
x += 1
return (x,y)
然后我使用以下代码:
x = 0
y = 0
time = 0
dust_in_room = 100
dust_removed = 0
time_passed_vec = []
dust_in_room_vec = range(100)
while dust_in_room > 7:
if array_from_file[x,y] == -1:
dust_in_room -= 1
array_from_file[x,y] = -2
time_passed_vec = time_passed_vec + [time]
dust_removed +=1
print(time)
time += 1
(x,y)=ordered_move(x,y,array_from_file)
我收到类型错误
“无法解压不可迭代的 NoneType 对象”
在最后一行。 从代码中您可以看出我是 python 新手,所以也许您可以提供一个简单的解释。谢谢。
【问题讨论】:
-
你并不总是从你的函数返回一个结果。如果不满足任何条件怎么办?
-
如果您的
ordered_move函数中没有任何条件为True,则该函数将隐式返回None。就是这样 -
另外,请确保您的作业正确。
x == 6,例如不是分配,但似乎你想要x = 6。它在您的代码中多次发生。 -
感谢您的回答。 :)
标签: python jupyter-notebook nonetype