需要帮助理解这个Python Cod吗

2024-10-01 09:20:27 发布

您现在位置:Python中文网/ 问答频道 /正文

此代码如下:

def increment(n):
    return n+1

def square(n):
    return n**2

def findSequence(initial,goal):
    candidates = [(str(initial), initial)]
    for i in range(1, goal - initial + 1):
        newCandidates = []
    for (action, result) in candidates:
        for (a,r) in [(' increment',increment),(' square',square)]:
            newCandidates.append((action+a,r(result)))
            print (newCandidates)


findSequence(1,2)

输出:

[('1 increment', 2)]
[('1 increment', 2), ('1 square', 1)]

我理解这一部分: [('1增量',2),('1平方',1)]

但是这个呢: [('1增量',2)]部分?你知道吗

或者为什么我写的时候[('1 increment',2)]部分也是两倍:

newCandidates[0]

我得到[('1 increment',2)],但是当我写newCandidates[0]时,我得到了越界错误,从来没有得到[('1 increment',2),('1 square',1)]作为输出。你知道吗


Tags: 代码inforreturndefactionresult增量
2条回答

代码的目标似乎是在元组列表中显示初始值到目标值的增量和幂运算的结果。 在我看来,代码是不正确的,因为它只输出初始值的结果。如果要打印初始值和目标值之间所有范围的值,请使用以下代码:

def increment(n):
    return n+1


def square(n):
    return n**2


def find_sequence(initial,goal):
    candidates = []
    for i in range(initial,goal):
        candidates.append((str(i), i))
    newCandidates = []
    for (action, result) in candidates:
        for (a,r) in [(' increment',increment),(' square',square)]:
            newCandidates.append((action+a,r(result)))
            print (newCandidates)


find_sequence(1,3)

另外,它打印一个重复的元素,因为打印是在为操作列表指定的for上进行的。如果打印超出一级(如下所示),则不会复制:

def increment(n):
    return n+1


def square(n):
    return n**2


def find_sequence(initial,goal):
    candidates = []
    for i in range(initial,goal):
        candidates.append((str(i), i))
    newCandidates = []
    for (action, result) in candidates:
        for (a,r) in [(' increment',increment),(' square',square)]:
            newCandidates.append((action+a,r(result)))

        print (newCandidates)


find_sequence(1,3)

当使用参数的initial和goal调用时,此代码打印如下几行

 [(initial +" increment",intitail+1)]
 [(initial +" increment",intitail+1),(initial +" square",intitail**2)]

它除了提供这个输出之外没有别的目的 真正的问题是你希望输出是什么?你知道吗

相关问题 更多 >