写这个更有效的方法是什么?

时间:2018-04-12 15:40:29

标签: python if-statement selection

我是python的新手,我想知道什么是更有效/更合适的方式来写这个?用户将输入一个“orbiting_body”类型,如果匹配则会输入正确的变量。

 $('#btnConnect').click(function () {
    $('#btnConnect').html('<span class="fa fa-spinner fa-spin"></span> Connecting');
    $.ajax({
        url: '/connect-console',
        type: 'post',
        data: {containerName: containerName},
        success: function (url) {
            $('#connectDiv').hide();
            $('#terminalDiv').show();

            term = new Terminal({
                screenKeys: true,
                useStyle: true,
                cursorBlink: true
            });
            ws = new WebSocket(url,true);
            ws.binaryType = 'arraybuffer';
            term.on('data', function (data) {
                ws.send(data);
            });
            term.open(document.getElementById("terminal"), true);
            ws.onopen = function() {
                console.log('ws connected');
            };
            ws.onerror = function() {
                console.log('ws error');
            };
            ws.onclose = function() {
                console.log('ws closed');
            };
            ws.onmessage = function(evt) {
                var decoder = new TextDecoder('utf-8');
                var data = decoder.decode(evt.data);
                term.write(data);
            };
        }
    });
});

4 个答案:

答案 0 :(得分:5)

将其放入dict

db = {
  "Ariel": (578.9, 90.099),
  ... and etc
}

primary_body_radius, gravitational_parameter = db.get(orbiting_body, (0.0, 0.0))

答案 1 :(得分:1)

尝试使用dictionary,heres是一个示例代码:

我在这里输入我的字典值

my_dict = {'Ariel':578.9, 'Callisto': 2410.3, 'Ceres':481.5}

您还可以按如下方式将值插入字典:

my_dict['Chairos'] = 6.2

您可以通过指定所需的密钥来访问它们:

primary_body_radius = my_dict['Ariel']
>> print(primary_body_radius)
>> 578.9

答案 2 :(得分:0)

不记得python语法很好,因为我多年没有使用它,但考虑逻辑: 如果您不想使用多态,则可以创建字典映射(键,值)。例如: map[Europa]=(1560.8,3203.52) map[default]=(0.0,0.0)

当用户插入orbiting_body时,您可以通过执行以下操作来分配变量:

(primary_body_radius,gravitational_paramter)=map[orbiting_body]

答案 3 :(得分:0)

这是另一种与@ tdelaney的

非常相似的方法
from collections import defaultdict

orbiting_body = ...

primary_body_radius, gravitational_parameter = defaultdict(lambda: (0,0), {
    'Ariel': (578.9, 90.099),
    'Callisto': (2410.3, 7181.224),
    # similarly for others
})[orbiting_body]