Можно ли ранее обозначенную числом переменную вывести из str в int?
Всем доброго времени суток. Появилась необходимость сделать мини метрический калькулятор. Например, из слова "megananokilogigamicrometer" по приставкам вывести степень конечного числа x. На примере mega имеет вид 10^6, nano 10^-9 и так далее, в итоге получится 10^3, нужно вывести степень 10, то есть 3. Я обозначил в коде заранее, чему равны эти переменные, но после того, как я нашел их в слове, не знаю, как вернуть в них значение из начала. Вот код:
tera =12
giga =9
mega =6
kilo =3
deci =-1
centi =-2
milli =-3
micro =-6
nano =-9
words = ['tera', 'giga', 'mega', 'kilo', 'deci','centi', 'milli', 'micro', 'nano']
word = input()
ans = []
##Находим слова-приставки
for i in words:
if i in word:
ans.append(i)
##Находим сумму их степени
print(sum(map(int, ans)))
Главный для меня вопрос - как все таки перевести приставку, которую я получил в цикле for в заданное ей значение. Опять же пример. Слово kilometer. В цикле for я получаю 'kilo' в строчке, но как эту "kilo" перевести в 3
Ответы (1 шт):
Как вам написали создайте словарь, который содержит значения для степеней, а не список
words = {'tera':12, 'giga':9, 'mega':6, 'kilo':3, 'deci':-1,'centi':-2, 'milli':-3, 'micro':-6, 'nano':-9}
test = "megananokilogigamicrometer"
result = 0
for key in words.keys():
if key in test:
result += words[key]
print(result)
# вывод
# 3