我正在写一个小程序,以帮助确定一个新的焊接是否涵盖了一个现有的焊接程序。逻辑是这样的:
焊接程序测试需要一个测试件。如果该测试件通过,这意味着公司可以焊接某些范围的材料。
如果钢板的thickness
是<= 3:你可以焊接从0.7 * thickness
到2* thickness
如果3< thickness
< 30,则可以从0.5 * thickness
焊接到2* thickness
。
如果thickness
> 30,则可以焊接任何大于5的焊缝。
throat_thickness
值在results
dict中取决于运行是's‘(单)还是'm’(多)。
我遇到的问题是,如果运行== 'm‘(用于多个),那么throat_thickness
的值应该是“无限制”。
# fillet weld
def fw_material_qual(throat_thickness, runs):
results = {}
if throat_thickness <= 3 and runs == 's':
results['mat_thickness_qual'] = (0.7 * throat_thickness,
1.5 * throat_thickness)
results['throat_thickness_qual'] = (0.75 * throat_thickness,
1.5 * throat_thickness)
elif 3 < throat_thickness < 30 and runs == 's':
results['mat_thickness_qual'] = (0.5 * throat_thickness,
2 * throat_thickness)
results['throat_thickness_qual'] = (0.75 * throat_thickness,
1.5 * throat_thickness)
elif throat_thickness >= 30:
results['mat_thickness_qual'] = '5 and up'
results['throat_thickness_qual'] = throat_thickness
return results
所以我的问题是,我能用一种更干净的方式来做这件事吗?
elif throat_thickness <= 3 and runs == 'm': # only m has changed!
results['mat_thickness_qual'] = (0.7 * throat_thickness,
1.5 * throat_thickness)
results['throat_thickness_qual'] = 'no restriction' # only this value changed!
等等。
发布于 2016-02-20 12:32:09
你可以这样做,
def fw_material_qual(throat_thickness, runs):
results = {}
if throat_thickness <= 3:
results['mat_thickness_qual'] = (0.7 * throat_thickness,
1.5 * throat_thickness)
if runs == 's':
results['throat_thickness_qual'] = (
0.75 * throat_thickness, 1.5 * throat_thickness)
else:
results['throat_thickness_qual'] = 'no restriction'
https://stackoverflow.com/questions/35523134
复制相似问题