gpt4 book ai didi

python - 将数组元素输入递归函数时出错

转载 作者:行者123 更新时间:2023-12-01 07:10:13 25 4
gpt4 key购买 nike

我试图将一个数组元素传递到一个计算阶乘的递归函数中,它输出 0。有一条警告,指出 long_scalars 中遇到了溢出。每当我将硬编码数字传递到函数中时,它似乎都能正常工作。有谁知道为什么会发生这种情况或如何解决它?

rand_10 = np.random.randint(100,500,10)

数组([173, 171, 375, 432, 393, 334, 268, 341, 183, 270])

def fact(x):
if x == 1:
return 1
else:
return x * fact(x-1)

fact(rand_10[0])

运行时警告:long_scalars 中遇到溢出

输出:0

编辑:我通读了可能的副本中提供的链接。我仍然不知道如何解决这个问题。如果这是它的分辨率,我应该如何以及在哪里将 dtype 设置为 int64?

最佳答案

这是工作代码:

import numpy as np

rand_10 = np.random.randint(100,500,10, dtype=np.int64)

def fact(x):
if x == 1:
return 1
else:
return x * fact(x-1)

x = rand_10[0].item() # method item() to convert the value into a native Python type
print(fact(x))

rand_10[0] 返回类型 numpy.int64。因此,您需要使用方法 item() 将其转换为原生 Python 类型(即 int) >

最诚挚的问候!

关于python - 将数组元素输入递归函数时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58261217/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com