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
解决方案
您应该使用一些值初始化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)
推荐阅读
- twitter - 无法从 twitter 获取授权令牌
- clojure - 如何使用幽灵合并两个不同的集合?
- mysql - Convertint millisecond to date
- c# - 在另一个控件中显示/隐藏控件
- java - 如何将 Opneshift 配置映射文件添加到内置于 tomcat 的 Spring Boot Web
- django - 使用发布请求从 Django 网站中的数据库登录/检查用户名和密码
- python - 如何生成总和等于特定数字的 15 个随机数
- python - Python-if语句下的多个条件
- linker - 是否可以让链接器生成一个二进制文件,尽可能接近先前生成的二进制文件?
- python - 使用 python 从通过 USB 连接的相机获取实时流