写这篇文章有什么更有效的方法?

2024-06-01 11:37:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,我想知道什么是更有效/更合适的方法来编写这个?用户将输入一个“轨道体”类型,如果匹配,它将提取正确的变量。你知道吗

if orbiting_body == "Ariel":    
    primary_body_radius = 578.9
    gravitational_parameter = 90.099
elif orbiting_body == "Callisto":   
    primary_body_radius = 2410.3    
    gravitational_parameter = 7181.224
elif orbiting_body == "Ceres":  
    primary_body_radius = 481.5 
    gravitational_parameter = 62.66886
elif orbiting_body == "Charon": 
    primary_body_radius = 603.5 
    gravitational_parameter = 101.4448
elif orbiting_body == "Deimos": 
    primary_body_radius = 6.2   
    gravitational_parameter = 0.000098521588
elif orbiting_body == "Dione":  
    primary_body_radius = 561.4 
    gravitational_parameter = 73.14704
elif orbiting_body == "Earth":  
    primary_body_radius = 6371  
    gravitational_parameter = 398678.064
elif orbiting_body == "Eris":   
    primary_body_radius = 1163  
    gravitational_parameter = 1114.558
elif orbiting_body == "Europa": 
    primary_body_radius = 1560.8    
    gravitational_parameter = 3203.52
else:   
    primary_body_radius = 0.0   
    gravitational_parameter = 0.0

Tags: 方法用户类型ifparameterbodyarielelif
3条回答

我记不太清楚python语法,因为我几年前就不使用它了,但是考虑一下逻辑: 如果不想使用多态性,可以创建字典映射(键、值)。例如: map[Europa]=(1560.8,3203.52) map[default]=(0.0,0.0)

当用户插入轨道体时,通过执行以下操作分配变量:

(primary_body_radius,gravitational_paramter)=map[orbiting_body]

把它放在dict

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

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

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

我在字典里输入值

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

也可以按如下方式向字典中插入值:

my_dict['Chairos'] = 6.2

您可以通过指定desire键来访问它们:

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

相关问题 更多 >