Я новичок, и у меня есть вопрос о моем коде на Python. Он не работает, как я думаю. Та часть, которая портя находится в вложен время:Вложенный цикл while не правильно зацикливается на python
import math
mu=4*math.pi*10**(-7) ##mu naught
I=
float(input('Enter a value for the current measured in Amperes: '))
R=abs(float(input('Enter a value for the radius
of the circle measured in meters: '))) ##radius
step=R/200 ##Step size for integration
B=[] ##array for B(r)
J=[]
Plot=[B,J]
k = 1 ##step counter for Circumfrence
j = 1 ##step counter for Radius
b_temp = 0 ##place holder to sum b(step*k)
D_Vector = [R*math.cos(k*math.pi/100),R*math.sin(k*math.pi/100)]
R_Vector = [R-j*step,0]
while(j*step<=R):
while(k*step<=2*math.pi*R):
r=(math.sqrt((R_Vector[0]-D_Vector[0])**2 +
(R_Vector[1]-D_Vector[1])**2))
b_temp = b_temp + (mu/(4*math.pi))*I*step*step/(r**2)
k=k+1
D_Vector = [R*math.cos(k*math.pi/100),R*math.sin(k*math.pi/100)]
R_Vector = [R-j*step,0]
print(round(r,3), j)
B.append(round(b_temp,8))
print('New j value!')
b_temp=0
J.append(round(step*j,3))
j=j+1
Он должен уйти радиус (первый в то время как петля), а затем цикл по кругу, подводя вклад магнитного поля для каждого куска проволоки. По какой-то причине, это не цикл через внутренний цикл, каждая итерация внешнего цикла, как и должно быть, и я честно не знаю, почему. Новый J значение линии, чтобы позволить мне увидеть, если он правильно перекручивание, и это мой выход:
...
13.657 1
13.884 1
14.107 1
14.327 1
14.543 1
14.756 1
14.965 1
15.17 1
15.372 1
New j value!
New j value!
New j value!
New j value!
New j value!
New j value!
New j value!
New j value!
...
1 в конце каждого поплавка (значение радиуса) значение у, который остается в 1 для каждый круг вокруг петли ...
Я полагаю, что я должен был упомянуть, что некоторые из строк разбиты, потому что линии были слишком длинными, чтобы вставлять их в поле редактирования. поэтому входы I и R на самом деле являются одной строкой, и я думаю, что все. – Tyler
Каков желаемый результат? –