Skip to content

Python Misc

andyceo edited this page Jun 25, 2024 · 2 revisions

Вычислить степень похожести двух изображений

from skimage.metrics import structural_similarity as ssim
from PIL import Image

    def similarity(self, orig: Image, ext: Image):
        """Calculate the similarity level of the images"""
        orig_np = np.array(orig.convert('L'))
        ext_np = np.array(ext.convert('L'))
        return ssim(orig_np, ext_np)

Модуль timeit для замеров производительности

Сравнить создание списка из трех элементов разными способами:

python -m timeit "[i for i in range(3)]"  # list comprehension

vs

python -m timeit "tuple(i for i in range(3))"  # create tuple from generator

vs

python -m timeit "tuple([i for i in range(3)])"  # create tuple from list

vs

python -m timeit -s "import numpy as np" "[i for i in np.arange(3)]"  # create list using numpy

vs

python -m timeit -s "import numpy as np" "np.array([i for i in np.arange(3)])"  # create numpy array

Сравнить работу bool и int в if:

python -m timeit -s "flag = True" "a = 123 if flag else 0"

vs

python -m timeit -s "flag = 0" "a = 123 if flag == 0 else 0"

tkinter: show one widget on different frames on tab change

Где-то в начале программы:

frame = tk.Frame(self)  # master of that frame is self, because we want to show it on many tabs
self.tab_control = ttk.Notebook(self)
self.tab_control.bind('<<NotebookTabChanged>>', self.on_tab_changed)

Обработчик смены таба:

def on_tab_changed(self.event):
    if event.widget is self.tab_control:
        frame = self.tab_control.nametowidget(self.tab_control.select())
        # Show frame on top of chosen frames
        if frame is self.frame_container_1 or frame is self.frame_container_2:
            self.ws.rlte.frame.grid(row=0, column=0, in_=frame)
            self.ws.rlte.frame.lift()

Установка pygame и pyxel

Pygame полностью зависит от SDL (Simple DirectMedia Layer) и Python.

Установить SDL:

sudo apt install libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libportmidi-dev

Установить pygame:

pip install pygame numpy==1.26.4

Проверить, что все работает:

python -m pygame.tests
python -m pygame.examples.aliens

Установить pyxel:

pip install pyxel

Sidebar is under construction

Clone this wiki locally