2016-09-10 2 views
0

Я пытаюсь создать действительно простую программу Python, где я могу ввести планету по ее названию и указать приблизительное расстояние. В настоящее время у меня есть семь планет, перечисленных и равных их расстояниям ниже этой функции eval.Python: Как я могу вызвать переменную при использовании функции eval?

Это то, что код выглядит в настоящее время:

def = def Planet_Calculations(): 
    Planet = exec(input("What planet are you trying to calculate the distance for? (Note: Pluto is no longer a planet!) ")) 
    Mercury = 56,974,146 
    Venus = 25,724,767 
    Earth = 0 
    Mars = 48,678,219 
    Jupiter = 390,674,710 
    Saturn = 792,248,270 
    Uranus = 1,692,662,530 
    Neptune = 2,703,959,960 

print("The distance to the specified planet is approxametly:" , Planet, "million miles from Earth.") 

Planet_Calculations() 

Когда я пытаюсь ввести планеты, такие как «Марс» в Eval, я понятия не имею, как на самом деле есть входной программы ее расстояние в функцию печати вниз. Я был бы очень признателен за любые отзывы или помощь.

ответ

1

Используйте отображение ДИКТ планет наборам ::

def planet_calculations(): 
    planet = input("What planet are you trying to calculate the distance for? (Note: Pluto is no longer a planet!) ") 
    planets = {'Mercury': (56, 974, 146), 'Neptune': (2, 703, 959, 960), 'Jupiter': (390, 674, 710), 
       'Uranus': (1, 692, 662, 530), 
       'Mars': (48, 678, 219), 'Earth': 0, 'Venus': (25, 724, 767), 'Saturn': (792, 248, 270)} 
    print("The distance to the specified planet is approxametly: {} million miles from Earth." 
      .format(planets[planet]) 

Если вы хотите, выход как "56,974,146" магазин значения в виде строк, а не кортежи.

Кроме того, если вы хотите использовать значение вне функции, вы должны вернуть его:

def planet_calculations(): 
    planet = input("What planet are you trying to calculate the distance for? (Note: Pluto is no longer a planet!) ") 
    planets = {'Mercury': (56, 974, 146), 'Neptune': (2, 703, 959, 960), 'Jupiter': (390, 674, 710), 
       'Uranus': (1, 692, 662, 530), 
       'Mars': (48, 678, 219), 'Earth': 0, 'Venus': (25, 724, 767), 'Saturn': (792, 248, 270)} 
    return planets[planet] 
print("The distance to the specified planet is approxametly: {} million miles from Earth." 
     .format(planet_calculations())) 
+0

Спасибо за вашу помощь Padraic! – GottaLoveArchery