Ручная компиляция байткода
Хотя файл байткода создается автоматически, мы вручную можем его сгенерировать. Для этого есть несколько способов: компиляция с помощью скрипта py_compile и компиляция с помощью модуля compileall.
Скрипт py_compile применяется для компиляции отдельных файлов. Для компиляции произвольного скрипта user.py в файл с байткодом мы могли бы использовать следующую программу:
Для компиляции в функцию compile() передаем путь к скрипту. После выполнения программы в текущей папке также будет сгенерирован каталог pycache, а в нем файл user.cpython-311.pyc
🐍 Укус питона // 💬 Чат // #теория #модули #байткод
Хотя файл байткода создается автоматически, мы вручную можем его сгенерировать. Для этого есть несколько способов: компиляция с помощью скрипта py_compile и компиляция с помощью модуля compileall.
Скрипт py_compile применяется для компиляции отдельных файлов. Для компиляции произвольного скрипта user.py в файл с байткодом мы могли бы использовать следующую программу:
Для компиляции в функцию compile() передаем путь к скрипту. После выполнения программы в текущей папке также будет сгенерирован каталог pycache, а в нем файл user.cpython-311.pyc
🐍 Укус питона // 💬 Чат // #теория #модули #байткод
Ручная компиляция байткода. Продолжение.
Для компиляции в функцию compile() передаем путь к скрипту. После выполнения программы в текущей папке также будет сгенерирован каталог pycache, а в нем файл user.cpython-311.pyc
Модуль compileall применяется для компиляции всех файлов Python по определенным путям. Например, скомпилируем все файлы в каталоге C:/python/files, смотрим пример.
По умолчанию компилируются даже те файлы, которые содержатся в подкаталогах. Если надо скомпилировать только те файлы, которые располагаются непосредственно в указанно папке, то применяется опция -l
🐍 Укус питона // 💬 Чат // #теория #модули #байткод
Для компиляции в функцию compile() передаем путь к скрипту. После выполнения программы в текущей папке также будет сгенерирован каталог pycache, а в нем файл user.cpython-311.pyc
Модуль compileall применяется для компиляции всех файлов Python по определенным путям. Например, скомпилируем все файлы в каталоге C:/python/files, смотрим пример.
По умолчанию компилируются даже те файлы, которые содержатся в подкаталогах. Если надо скомпилировать только те файлы, которые располагаются непосредственно в указанно папке, то применяется опция -l
🐍 Укус питона // 💬 Чат // #теория #модули #байткод
Модуль random
Модуль random управляет генерацией случайных чисел. Его основные функции:
• random(): генерирует случайное число от 0.0 до 1.0
• randint(): возвращает случайное число из определенного диапазона
• randrange(): возвращает случайное число из определенного набора чисел
• shuffle(): перемешивает список
• choice(): возвращает случайный элемент списка
Функция random() возвращает случайное число с плавающей точкой в промежутке от 0.0 до 1.0. Если же нам необходимо число из большего диапазона, скажем от 0 до 100, то мы можем соответственно умножить результат функции random на 100.
Функция randint(min, max) возвращает случайное целое число в промежутке между двумя значениями min и max.
🐍 Укус питона // 💬 Чат // #теория #модули #random
Модуль random управляет генерацией случайных чисел. Его основные функции:
• random(): генерирует случайное число от 0.0 до 1.0
• randint(): возвращает случайное число из определенного диапазона
• randrange(): возвращает случайное число из определенного набора чисел
• shuffle(): перемешивает список
• choice(): возвращает случайный элемент списка
Функция random() возвращает случайное число с плавающей точкой в промежутке от 0.0 до 1.0. Если же нам необходимо число из большего диапазона, скажем от 0 до 100, то мы можем соответственно умножить результат функции random на 100.
Функция randint(min, max) возвращает случайное целое число в промежутке между двумя значениями min и max.
🐍 Укус питона // 💬 Чат // #теория #модули #random
Что выведет этот код?
Anonymous Quiz
14%
True False True True
27%
True True True True
20%
True False True False
39%
True True True False
Модуль random
Функция randrange() возвращает случайное целое число из определенного набора чисел. Она имеет три формы:
• randrange(stop): в качестве набора чисел, из которых происходит извлечение случайного значения, будет использоваться диапазон от 0 до числа stop
• randrange(start, stop): набор чисел представляет диапазон от числа start до числа stop
• randrange(start, stop, step): набор чисел представляет диапазон от числа start до числа stop, при этом каждое число в диапазоне отличается от предыдущего на шаг step
🐍 Укус питона // 💬 Чат // #теория #модули #random #randrange
Функция randrange() возвращает случайное целое число из определенного набора чисел. Она имеет три формы:
• randrange(stop): в качестве набора чисел, из которых происходит извлечение случайного значения, будет использоваться диапазон от 0 до числа stop
• randrange(start, stop): набор чисел представляет диапазон от числа start до числа stop
• randrange(start, stop, step): набор чисел представляет диапазон от числа start до числа stop, при этом каждое число в диапазоне отличается от предыдущего на шаг step
🐍 Укус питона // 💬 Чат // #теория #модули #random #randrange
Что выведет этот код?
Anonymous Quiz
19%
{1, ‘PYnative’, [‘abc’, ‘xyz’]}
51%
{1, ‘PYnative’, [‘abc’, ‘xyz’], True}
30%
TypeError
Модуль locale
При форматировании чисел Python по умолчанию использует англосаксонскую систему, при которой разряды целого числа отделяются друг от друга запятыми, а дробная часть от целой отделяется точкой. В континентальной Европе, например, используется другая система, при которой разряды разделяются точкой, а дробная и целая часть - запятой, первая часть кода:
И для решения проблемы форматирования под определенную культуру в Python имеется встроенный модуль locale.
Для установки локальной культуры в модуле locale определена функция setlocale(). Она принимает два параметра, вторая часть кода:
Первый параметр указывает на категорию, к которой применяется функция - к числам, валютам или и числам, и валютам.
🐍 Укус питона // 💬 Чат // #теория #модули #locale
При форматировании чисел Python по умолчанию использует англосаксонскую систему, при которой разряды целого числа отделяются друг от друга запятыми, а дробная часть от целой отделяется точкой. В континентальной Европе, например, используется другая система, при которой разряды разделяются точкой, а дробная и целая часть - запятой, первая часть кода:
И для решения проблемы форматирования под определенную культуру в Python имеется встроенный модуль locale.
Для установки локальной культуры в модуле locale определена функция setlocale(). Она принимает два параметра, вторая часть кода:
Первый параметр указывает на категорию, к которой применяется функция - к числам, валютам или и числам, и валютам.
🐍 Укус питона // 💬 Чат // #теория #модули #locale
Что выведет этот код?
Anonymous Quiz
18%
TypeError
40%
Kelly 9000
23%
(’emp’, ‘Kelly’) (‘salary’, 9000)
19%
emp salary
Модуль locale
В качестве значения для параметра мы можем передавать одну из следующих констант, смотрим пример:
Второй параметр функции setlocale указывает на локальную культуру, которую надо использовать. На ОС Windows можно использовать код страны по ISO из двух символов, например, для США - "us", для Германии - "de", для России - "ru". Но на MacOS необходимо указывать код языка и код страны, например, для английского в США - "en_US", для немецкого в Германии - "de_DE", для русского в России - "ru_RU". По умолчанию фактически используется культура "en_US".
🐍 Укус питона // 💬 Чат // #теория #модули #locale
В качестве значения для параметра мы можем передавать одну из следующих констант, смотрим пример:
Второй параметр функции setlocale указывает на локальную культуру, которую надо использовать. На ОС Windows можно использовать код страны по ISO из двух символов, например, для США - "us", для Германии - "de", для России - "ru". Но на MacOS необходимо указывать код языка и код страны, например, для английского в США - "en_US", для немецкого в Германии - "de_DE", для русского в России - "ru_RU". По умолчанию фактически используется культура "en_US".
🐍 Укус питона // 💬 Чат // #теория #модули #locale