0 python for-loop if-statement function list
def vol_tank(R,h):
ht = R + 2.3*R
if ht >= h:
vol = 3.14 * R*R * h + 3.14 * R*R * h / 3
print ('R: %.1f , h: %.1f - volume: %.2f' % (R,h,vol))
elif R >= h:
vol = 3.14 * R*R * h / 3
print ('R: %.1f , h: %.1f - volume: %.2f' % (R,h,vol))
else:
print ('R: %.1f , h: %.1f - overflowing' % (R,h))
values = [[0.8, 1, 1.3, 1.5], [1, 1.25, 3.8, 4.5]]
table = [[vol_tank(R,h) for R in values[0]] for h in values[1]]
Run Code Online (Sandbox Code Playgroud)
- >表正在计算第一个"值"列表中的所有数字,其中包含第二个列表中的所有数字(例如:0.8表示1,0.8表示1.25,0.8表示3.8等等).
但我想要的只是他们各自的配对,如:0.8,11,1.55,1.3,3.8和1.5 4.5.
您正在寻找zip()功能:
table = [vol_tank(R, h) for R, h in zip(*values)]
Run Code Online (Sandbox Code Playgroud)
并且您应该返回结果vol_tank()而不仅仅是打印,否则table将是一个充满None值的列表.