python,用 'def' 和 'for-loop' 求幂

python, exponentiaiton with 'def' and 'for-loop'

输入:

numbers = [1,2,3]
increment = 5

预期输出:

[1, 32, 243]

我的代码结果:

1
32
243

代码:

def power(x, y):

    if (y == 0): return 1
    elif (int(y % 2) == 0):
        return (power(x, int(y / 2)) *
            power(x, int(y / 2)))
    else:
        return (x * power(x, int(y / 2)) *
                power(x, int(y / 2)))

for number in numbers:
    exponentiation = power(number,increment)
    print(exponentiation)

我试图在没有 pow() 和“**”函数的列表中找到数字的平方根。我找到了每个数字的平方根,但我想知道如何将它们放入列表中。

您正在打印求幂,但您想输出列表。 这就是你想要做的:

# your function code above

answer = []
for number in numbers:
    exponentiation = power(number,increment)
    answer.append(exponentiation)

print(answer)

这将给出:

[1, 32, 243]

你可以使用单行循环 -

exponentiation = [power(number,increment) for number in numbers]
print(exponentiation)
#[1,32,243]

您应该在 for 循环之前创建一个空列表,然后在 for 循环内部,而不是打印每个数字,而是将其附加到列表中。然后在最后打印列表。

def power(x, y):

    if (y == 0): return 1
    elif (int(y % 2) == 0):
        return (power(x, int(y / 2)) *
            power(x, int(y / 2)))
    else:
        return (x * power(x, int(y / 2)) *
                power(x, int(y / 2)))

output_list = []

for number in numbers:
    exponentiation = power(number,increment)
    output_list.append(exponentiation)

print(output_list)

您可以使用 python 库的 pow 函数并在列表中附加值并打印列表而不是单个值

numbers = [1,2,3]
increment = 5
l=[]
for i in numbers:
    ex=pow(i,increment )
    l.append(ex)
print(l)

输出

[1, 32, 243]