本福德分布

2024-06-08 20:26:26 发布

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

您好,我正在尝试为Benford发行版编写代码,但出现以下错误:

def leading_digit(n):
    while n >= 10:
        n = n//10
    return n

def Ben(k):
    results = []
    for i in range(k):
        random_number[i] = np.random.randint(10000)
        results.append(leading_digit(random_number[i]))
    return results

Ben(2)

错误消息:

---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-27-5811e9105b42> in <module>
----> 1 Ben(2)

<ipython-input-26-5df31a0e6a56> in Ben(k)
      2     results = []
      3     for i in range(k):
----> 4         random_number[i] = np.random.randint(10000)
      5         results.append(leading_digit(random_number[i]))
      6     return results

NameError: name 'random_number' is not defined

Tags: innumberforreturndef错误nprange
1条回答
网友
1楼 · 发布于 2024-06-08 20:26:26

您应该使用一些值初始化random_number列表(random_number = [0] * k),因为它报告变量random_number未定义错误

def leading_digit(n):
    while n >= 10:
        n = n//10
    return n

def Ben(k):
    results = []
    random_number = [0] * k
    for i in range(k):
        random_number[i] = np.random.randint(10000)
        results.append(leading_digit(random_number[i]))
    return results

Ben(2)

相关问题 更多 >