И так, в прошлой статье разбирали модуль math , теперь время модуля locale .
Для чего он нужен? По умолчанию в python используется англосаксонская система форматирования(разряды числа отделяются запятой, а дробная часть точкой). В Европе же более принято отделять разряды точкой, а дробную часть запятой. В итоге для решения проблемы форматирования, под разные регионы в python добавили модуль locale . Добавим его:
import locale
Как установить локализацию?
locale.setlocale(<категория>,<локализация>)
Что еще за категории? Категория указывает к чему применяется функция(число, валюта и тд...). Какие есть категории?
- locale.LC_ALL - всеобщая локализация
- locale.LC_NUMERIC - локализация к числам
- locale.LC_MONETARY - локализация к дате и времени
- locale.LC_TIME - локализация к валюте
- locale.LC_CTYPE - локализация при переводе из регистра в регистр
- locale.LC_COLLIATE - локализация при сравнении строк
В качестве параметра локализации указывается код страны и языка. Так для США - en_US , для Германии - de_DE , для России - ru_RU и тд...
Для форматирования чисел и валют у модуля есть 2 функции:
1.currency для форматирования валюты:
locale.currency(<число>)
2.format_string - подставление числа вместо плейсхолдера в строку.
locale.format_string(<плейсхолдер>,<число>)
Плейсхолдеры бывают следующие:
- d - для целых чисел
- f - для чисел с плавающей точкой
- c - для экспоненциальной записи чисел
Перед плейсхолдером ставится знак %:
"%d"
Также при выводе дробного можно указать сколько знаков после запятой оставить:
%.2f - оставить два знака после запятой
p.s.В старых версиях можно было вместо format_string , писать format , сейчас же это понемногу ограничивают, уже сейчас в python 3.9 выбивает ошибку со словами, что это скоро будет удалено из python .
Узнать свою локализацию можно через функцию getlocale :
locale.getlocale()
Ну, что же, на этом основы модуля locale окончены. Остался один модуль и будет новый, более уникальный и качественный контент.