不懂Python方法

时间:2012-11-11 16:49:10

标签: python artificial-intelligence

我不明白move方法中发生了什么。我正在从Udacity.com学习AI课程。视频位置为:http://www.udacity.com/view#Course/cs373/CourseRev/apr2012/Unit/512001/Nugget/480015

下面是我没有得到的代码,它没有按照视频中的显示工作.. 根据Udacity,我应该得到的答案是[0,0,1,0,0] 这是我得到的[]

p=[0, 1, 0, 0, 0]


def move(p, U):
    q = []
    for i in range(len(p)):
        q.append(p[(i-U) % len(p)])
        return q

print move(p, 1)

2 个答案:

答案 0 :(得分:6)

缩进问题。你应该在for循环之外移动你的return语句,否则它将在第一次迭代后立即返回: -

for i in range(len(p)):
    q.append(p[(i-U) % len(p)])
return q

此外,您的原始代码会返回[0]而不只是[]

答案 1 :(得分:2)

你的回报不应缩进for循环...

p=[0, 1, 0, 0, 0]


def move(p, U):
    q = []
    for i in range(len(p)):
        q.append(p[(i-U) % len(p)])
    return q

print move(p, 1)