当我尝试导入任何内容或尝试修改numpy语句以从numpy import arange 中导入以外的任何内容时,我会收到错误,例如来自numpy import * ,或者添加任何其他导入语句。
我也无法使我的半径随机浮动它说r = random.uniform(0,2)AttributeError:'builtin_function_or_method'对象没有属性'uniform'。
这是我尝试修改导入语句时遇到的错误:
Traceback (most recent call last):
line 13, in <module>
rate(5)
TypeError: rate() missing 3 required positional arguments: 'pmt', 'pv', and 'fv'
代码:
from visual import *
from math import cos,sin,pi
from numpy import arange
from random import *
s = sphere(pos=[1,0,0],radius=0.1,color = color.red)
s0 = sphere(pos=[0,0,0],radius=0.25,color = color.green)
for i in arange(0,100,0.1):
rate(5)
theta = randint(0,30)
r = randint(-2,2)
x = cos(theta)
y = sin(theta)
s.pos = [x,y,r]
答案 0 :(得分:1)
在脚本或程序中使用from <some_library> import *
通常是个坏主意,因为它会将{em>所有从<some_library>
导入当前命名空间。如果<some_library>
中的任何名称已存在于当前名称空间中,则将重新定义它们。例如,最好是
import numpy as np
并使用前缀np
访问numpy
命名空间(例如np.arange
),或者只显示您脚本中所需的内容。例如,要从randint
导入random
,
from random import randint
在您的情况下,numpy
和visual
都定义了一个名为rate
的函数。 (请参阅http://vpython.org/contents/docs/rate.html和http://docs.scipy.org/doc/numpy/reference/generated/numpy.rate.html。)显然,当您收到报告的错误时,您已完成from numpy import *
,因此您的脚本正在调用numpy.rate
而不是visual.rate