我有一个循环的问题。我想将“公称直径”设置为“nominal_diameters”列表中的值。例如,我的“calc_diameter=130”,所以我希望“nominal_diameter=125”。到目前为止,在这段代码中,我得到了“nominal_diameter=0”的结果。
我应该在循环中做什么改变?
import math
print('Welcome in PipeDiameter program. It helps you to choose the right size of pipe for'
' sewerage pressure systems.')
flow=round(float(input('Please enter your sewage flow [(m^3)/s]:')),2)
speed_assumed = 1
calc_diameter=round(math.sqrt(((4*flow)/((math.pi)*speed_assumed))*1000),2)
print(str(calc_diameter)+' mm')
nominal_diameters=[90,110,125,160,180,200,225,250,315,355,400,450,500,560,630,710,800]
inner_diameters=[(90-2*5,4),(110-2*6,6),(125-2*7,4),(160-2*9,5),(180-2*10,7),(200-2*11,9),
(225-2*13,4),(250-2*14,8),(315-2*18,7),(355-2*21,1),(400-2*23,7),(450-2*26,7),
(500-2*29,7),(560-2*33,2),(630-2*37,4),(710-2*42,1),(800-2*47,4)]
nominal_diameter=0
i=0
while nominal_diameters[i]<=calc_diameter<=nominal_diameters[i+1]:
nominal_diameter=nominal_diameters[i]
i=i+1
print(nominal_diameter)
calc_diameter=130
,为什么nominal_diameter=125
?而不是160?或者如果calc_diameter=124
呢?还有厚度列表呢? - iGian90 <= 130 <= 110
失败,因此循环从未进入。您能解释一下您在循环中尝试做什么吗?nominal_diameter
是否应该是列表中最接近calc_diameter
的值? - shriakhilc