我要实现的蛮力搜索应该在值的范围内进行迭代,但是似乎被卡住了。 我理想地希望继续使用for循环
我尝试重新排列for循环并直接使用[Angle,Max_Camber,Max_Camber_Position,Thickness]而不是分配它。
. < src2 branch
|
o src1+2-1.1-1
|
src1-branch > . o src1+2-1.1-0
| /|
|/ |
src1-1.1 o |
| o src1+2-1.0-1
| /
|/
src1-1.0 o
答案 0 :(得分:0)
当您为翼型分配值时 翼型= [角度,最大弯度,最大弯度位置,厚度] 您实际上更改了迭代的起始位置
以获得749次迭代 将打印的机翼更改为其他名称,例如
Iterations = -1
Current_Max = 0
Airfoil = [0, 1, 1, 10]
for Angle in range(Airfoil[0],90,15):
for Max_Camber in range(Airfoil[1],11,2):
for Max_Camber_Position in range(Airfoil[2],11,2):
for Thickness in range(Airfoil[3],100,20):
Iterations+=1
print("Iterations = ",Iterations)
Airfoil2 =[Angle,Max_Camber,Max_Camber_Position,Thickness]
print("Airfoil = ", Airfoil2)
这将起作用
答案 1 :(得分:0)
在打印列表之前,应使用其他变量名称创建列表。您还可以使用Python的product()
函数,该函数有助于避免深层嵌套的for循环来精确地执行您正在做的事情,例如:
from itertools import product
Iterations = -1
Current_Max = 0
Airfoil = [0, 1, 1, 10]
for Angle, Max_Camber, Max_Camber_Position, Thickness in product(
range(Airfoil[0], 90, 15), range(Airfoil[1], 11, 2),
range(Airfoil[2], 11, 2), range(Airfoil[3], 100, 20)):
Iterations += 1
print("Iterations = ", Iterations)
Airfoil2 = [Angle, Max_Camber, Max_Camber_Position, Thickness]
print("Airfoil = ", Airfoil2)