Архив рубрики: Python для начинающих

Python. Генерация псевдослучайных чисел. Модуль random

Скрипты выполнялись под Python версии 2.7.9.

Генерация случайных чисел используется для:

  • создания идентификаторов сессий,
  • создания токенов (CSRF и т.п.),
  • создания произвольных паролей и кодов доступа,
  • создания произвольных последовательностей данных в играх,
  • создания уникальных номеров для маркетинговых акций (подарочные карты, розыгрыш призов по коду и т.п.).

В Python существует несколько основных модулей и классов, связанных с генерацией псевдослучайных чисел:

  • _random - реализует алгоритм Mersenne Twister, написан на языке C;
  • класс Random - наследует _random, написан на языке Python;
  • модуль os - предоставляет доступ к внешнему источнику случайных чисел, в случае Linux - это /dev/urandom;
  • класс SystemRandom наследует Random, но для генерации случайных чисел обращается к os.urandom;
  • класс WichmannHill наследует Random, реализует алгоритм Вихмана-Хилла для генерации псевдослучайных чисел.

В качестве основного генератора псевдослучайных чисел Python использует Mersenne Twister, доступ к которому предоставляет класс Random. Mersenne Twister имеет период 2 ** 19937-1. Это один из наиболее протестированных генераторов случайных чисел. Основная часть реализована на C. К сожалению, не подходит для криптографических задач.

Читать далее

Ошибка «Cannot uninstall AnyPackageName. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall»

Ошибка возникает при попытке обновления установленного пакета:

Решение, используем опцию "--ignore-installed":

Проверяем результат, версия пакета изменилась и он находится в списке не требующих обновления:

Работа с pip для начинающих. Шпаргалка

Установка pip

pip - питоняшный менеджер пакетов. Устанавливает и удаляет пакеты, написанные с помощью python.

Проверяем, что установка прошла успешно:

Pip по умолчанию устанавливает пакеты из Python Package Index (PyPI) - крупнейшего каталога пакетов для python. Python Package Index - аналог CPAN для Perl и PEAR для PHP.

Читать далее

Ошибка «Could not find any downloads that satisfy the requirement» в pip

Исходные данные. Операционная система Debian 8. С помощью apt-get установлен pip ($ apt-get install python-pip). При просмотре списка пакетов, с опциями --uptodate и --outdated в выводе появляются строки "Could not find any downloads that satisfy the requirement".

Читать далее