这是我的代码,语法错误是在第18行。我努力理解为什么我得到这个错误。语法错误无效,但我无法发现它? (Python)
from visual import *
def Efield(pos, charge)
"""
Calculate electric field due to point charge
Inputs
======
pos - Position where the E field is required (vector)
charge.pos - Position of the charge (vector)
charge.q - Charge (float)
Returns
=======
The electric field vector
"""
r = vector(charge.pos) - vector(pos) # Vector from pos to chargepos
E = float(q) * r/abs(r)**3 # Coulomb's law
return E
创建一些费用
charge1 = sphere(pos=(0,2,0), q=1, radius=0.2, color=color.red) # Positive charge
charge2 = sphere(pos=(0,-2,0), q=-1, radius=0.2, color=color.blue) # Negative charge
在随机位置
random.seed(1234) # Specify a random seed
n = 500
for i in range(n):
x = random.uniform(-4 4)
y = random.uniform(-4,4)
z = random.uniform(-4,4)
pos = vector(x,y,z)
# Make sure pos is not too close to both positive and negative charge
if abs(pos - charge1.pos) > 1 and abs(pos - charge2.pos) > 1:
# Create an arrow if it's far enough from both charges
a = arrow(pos=pos, axis= Efield(pos, charge1) + Efield(pos,charge1))
解决您的压痕 – depperm
广告四个空格来缩进添加到您的代码'”“ ' –