Python导入numpy.random uniform时出现NameError问题排查
搞定你的NameError问题
兄弟,看你遇到的这个NameError,从错误信息里截出来的代码片段sample = {item: unif...就能看出问题啦——你大概率是在字典推导式里把uniform拼错了,比如写成unif或者其他缩写,Python找不到这个名字,自然就报错了。
先回去检查下代码里的拼写,把错误的拼写改回uniform(),这应该就能解决这个NameError了。
另外还有个小细节得提醒你:你设置的probability = 100,但numpy.random.uniform()默认生成的是0到1之间的浮点数,所以uniform() < 100这个判断永远会返回True,这显然不是你想要的随机概率效果呀。如果你的概率是百分比,比如要100%的概率就写成probability = 1.0,50%就写probability = 0.5,这样才能达到随机判断的目的。
修正后的代码给你参考下:
rounds = 10 probability = 0.5 # 举个例子,设置50%的随机概率 items = [1, 2, 3, 4, 5] from numpy.random import uniform for r in range(1, rounds): sample = {item: uniform() < probability for item in items} # 可以打印看看每轮的随机结果 print(f"第{r}轮结果: {sample}")
要是拼写检查完还是报错,那再确认下导入语句的位置——确保from numpy.random import uniform是在你使用uniform()之前执行的,不过你现在的代码里导入是在循环前面,这部分是没问题的。
内容的提问来源于stack exchange,提问作者Shuklaswag
相关产品推荐
相关产品推荐

