2017-01-09 6 views
-4

Я хочу преобразовать числа, которые идут с буквами, и преобразовать их в зависимости от значения, которое указывается каждой буквой. Как число 1M должно быть прочитано как 1000000, а число 1K должно быть прочитано как 1000. Есть ли какой-то простой способ сделать это?Как преобразовать единицы СИ в номер с помощью python

+6

Вы можете попробовать написать код, чтобы решить вашу проблему :) – blacksite

+0

Я видел библиотеку [pint] (https://pint.readthedocs.io/en/0.7.2/), указанную в другом ответе несколько дней назад. Я не использовал его сам, но он может быть вам подходит. Поправьте меня если я ошибаюсь. – Tagc

+0

Возможный дубликат [библиотеки Python для преобразования между префиксами SI-блока] (http://stackoverflow.com/questions/10969759/python-library-to-convert-between-si-unit-prefixes) – ThisSuitIsBlackNot

ответ

1

Преобразование последнего символа в значение, например. M -> 1000000, k -> 1000. Multipy со значением и добавьте код для возможных ошибок синтаксического анализа.

(я специально не добавил код здесь, чтобы дать вам попробовать).

+0

Мишель, мне просто нужно было знайте, нужно ли это делать, написав какой-то код или если была простая функция. Спасибо –

+0

А, ок ... Я не знал, что из вопроса ... afaik нет функции, но в конце концов, это не так сложно написать. –

1

Тривиальным подход должен был бы использовать словарь, чтобы сохранить число нулей каждого преобразования будет использовать:

>>> number = { 
...  'K': 3, 
...  'M': 6 
... } 
>>> 
>>> var = '5M' 
>>> int(var[0] + ('0' * number[var[1]])) 
5000000 
>>> var = '2K' 
>>> int(var[0] + ('0' * number[var[1]])) 
2000 
>>> 

Это решение может или не может быть масштабируемым в зависимости от размера и сложности проекта.

 Смежные вопросы

  • Нет связанных вопросов^_^