DamiRocK

Python: модуль, пакет и учебная генерация четырёх цифр

Импортируем randint() и повторяем четыре независимых учебных выбора цифры. Не выдаём генератор random за безопасное средство создания реального PIN.

Повторное использование кода

Модуль позволяет организовать определения и использовать их через import. Пакет объединяет модули. Часть модулей входит в стандартную библиотеку Python и не требует отдельной установки; random относится к ней.

Задание источника

Упражнение предлагает вывести четырёхзначный PIN, собрав четыре цифры через randint():

from random import randint

print(
    str(randint(0, 9))
    + str(randint(0, 9))
    + str(randint(0, 9))
    + str(randint(0, 9))
)

Здесь randint включает обе границы. Каждый результат сначала преобразуется в строку, затем четыре строки соединяются. Начальный ноль сохраняется, поэтому вид результата всегда содержит четыре цифры.

Почему не складывать числа

Если убрать str(), оператор плюс выполнит арифметическое сложение четырёх цифр, а не создаст четырёхсимвольный код. Скобки print позволяют перенести длинное выражение на несколько строк без изменения результата.

Ограничение безопасности

Это учебная демонстрация импорта и псевдослучайности, не рекомендуемый генератор реальных паролей или PIN. Стандартная документация прямо отделяет random от средств для криптографических секретов. Для задач безопасности предназначен модуль secrets, но одного его использования недостаточно для проектирования всей системы проверки коротких кодов.

Как проверить пример

Не сравнивайте вывод с одним заранее выбранным числом. Проверяйте длину четыре и наличие только цифр 0–9. Повтор одинакового результата возможен и сам по себе не доказывает неисправность генератора.

Урок не требует установки стороннего пакета или доступа к сети. Запуск примера не создаёт учётную запись и не меняет пароль какого-либо сервиса.

Hexlet / Code Basics и участники · Исходный урок и решение · Ограничения random · GNU AGPL v3. Учебная генерация отделена от рекомендаций безопасности.

Reading preferences

Appearance
Contrast
More options

Saved only in this browser. Your device’s reduced-motion setting is always respected. Browser zoom works throughout the site.