首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据其他值的结果计算值

根据其他值的结果计算值
EN

Stack Overflow用户
提问于 2016-02-20 12:17:31
回答 1查看 48关注 0票数 2

我正在写一个小程序,以帮助确定一个新的焊接是否涵盖了一个现有的焊接程序。逻辑是这样的:

焊接程序测试需要一个测试件。如果该测试件通过,这意味着公司可以焊接某些范围的材料。

如果钢板的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的值应该是“无限制”。

代码语言:javascript
运行
复制
# 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

所以我的问题是,我能用一种更干净的方式来做这件事吗?

代码语言:javascript
运行
复制
    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!

等等。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-20 12:32:09

你可以这样做,

代码语言:javascript
运行
复制
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'
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35523134

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档