Найти в Дзене
postHack

Основы Python #15. Модуль locale.

И так, в прошлой статье разбирали модуль math , теперь время модуля locale .
Для чего он нужен? По умолчанию в python используется англосаксонская система форматирования(разряды числа отделяются запятой, а дробная часть точкой). В Европе же более принято отделять разряды точкой, а дробную часть запятой. В итоге для решения проблемы форматирования, под разные регионы в python добавили модуль locale

И так, в прошлой статье разбирали модуль 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 окончены. Остался один модуль и будет новый, более уникальный и качественный контент.

@postHack

Дзен