🐍 Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ИИ Π½Π° Python для ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ° 🐍

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ИИ Π½Π° Python для ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ°

Для создания Π˜ΡΠΊΡƒΡΡΡ‚Π²Π΅Π½Π½ΠΎΠ³ΠΎ Π˜Π½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π° (ИИ) для ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ поиска ΠΏΡƒΡ‚ΠΈ, Ρ‚Π°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ A*.

Π’ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°:


import heapq

def a_star(start, goal, obstacles):
    open_set = []
    heapq.heappush(open_set, (0, start))
    came_from = {start: None}
    g_score = {start: 0}

    while open_set:
        current = heapq.heappop(open_set)[1]
        if current == goal:
            return reconstruct_path(came_from, current)
        
        for neighbor in get_neighbors(current):
            if neighbor in obstacles:
                continue
            
            tentative_g_score = g_score[current] + 1

            if neighbor not in g_score or tentative_g_score < g_score[neighbor]:
                g_score[neighbor] = tentative_g_score
                f_score = tentative_g_score + heuristic(neighbor, goal)
                heapq.heappush(open_set, (f_score, neighbor))
                came_from[neighbor] = current

    return None

def get_neighbors(cell):
    # Π’Π΅Ρ€Π½ΡƒΡ‚ΡŒ список сосСдних ΠΊΠ»Π΅Ρ‚ΠΎΠΊ для Π΄Π°Π½Π½ΠΎΠΉ ячСйки
    pass

def heuristic(cell, goal):
    # ΠžΡ†Π΅Π½ΠΈΡ‚ΡŒ эвристику ΠΌΠ΅ΠΆΠ΄Ρƒ Π΄Π°Π½Π½ΠΎΠΉ ячСйкой ΠΈ Ρ†Π΅Π»Π΅Π²ΠΎΠΉ ячСйкой
    pass

def reconstruct_path(came_from, current):
    path = []
    while current is not None:
        path.append(current)
        current = came_from[current]
    return path[::-1]

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ a_star для поиска ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΡƒΡ‚ΠΈ ИИ ΠΎΡ‚ Π³ΠΎΠ»ΠΎΠ²Ρ‹ Π·ΠΌΠ΅ΠΉΠΊΠΈ Π΄ΠΎ Ρ†Π΅Π»ΠΈ, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΅Ρ‘ собствСнным хвостом ΠΈΠ»ΠΈ ΠΏΠΈΡ‰Π΅ΠΉ.

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_neighbors ΠΈ heuristic Π² соотвСтствии с Π»ΠΎΠ³ΠΈΠΊΠΎΠΉ вашСй ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ°.

Π£Π΄Π°Ρ‡ΠΈ Π² создании ИИ для вашСй ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python!

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ИИ Π½Π° Python для ΠΈΠ³Ρ€Ρ‹ "Π—ΠΌΠ΅ΠΉΠΊΠ°"

ΠŸΡ€ΠΈΠ²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽ! Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ (ИИ) для ΠΈΠ³Ρ€Ρ‹ "Π—ΠΌΠ΅ΠΉΠΊΠ°" Π½Π° языкС программирования Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ ΠΈ Π»ΠΎΠ³ΠΈΠΊΡƒ программирования, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π½Π°ΡˆΡƒ Π·ΠΌΠ΅ΠΉΠΊΡƒ ΡƒΠΌΠ½ΠΎΠΉ ΠΈ способной ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.

Π¨Π°Π³ 1: Настройка окруТСния

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π° вашСм ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π΅ установлСн Python ΠΈ доступна Π΅Π³ΠΎ срСда выполнСния. Π’Π°ΠΊΠΆΠ΅ Π½Π°ΠΌ потрСбуСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° pygame для создания графичСского интСрфСйса ΠΈΠ³Ρ€Ρ‹ ΠΈ управлСния Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠ΅ΠΉ.

pip install pygame

Π¨Π°Π³ 2: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ для ИИ, Π΄Π°Π²Π°ΠΉΡ‚Π΅ создадим ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ»Π΅. ΠœΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΡƒΠΌΠ΅Ρ€Π½Ρ‹ΠΉ массив для прСдставлСния сСтки, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ наша Π·ΠΌΠ΅ΠΉΠΊΠ°. КаТдая ячСйка сСтки ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ значСния, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ пустая ячСйка, яблоко ΠΈΠ»ΠΈ сама Π·ΠΌΠ΅ΠΉΠΊΠ°.

import pygame

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² поля
WIDTH = 800
HEIGHT = 600
GRID_SIZE = 20
GRID_WIDTH = WIDTH // GRID_SIZE
GRID_HEIGHT = HEIGHT // GRID_SIZE
BACKGROUND_COLOR = (51, 51, 51)
GRID_COLOR = (255, 255, 255)

# Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ графичСского ΠΎΠΊΠ½Π°
pygame.init()
window = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("Π—ΠΌΠ΅ΠΉΠΊΠ°")

# Основной Ρ†ΠΈΠΊΠ» ΠΈΠ³Ρ€Ρ‹
while True:
    # ΠžΡ‚Ρ€ΠΈΡΠΎΠ²ΠΊΠ° Ρ„ΠΎΠ½Π° ΠΈ сСтки
    window.fill(BACKGROUND_COLOR)
    for x in range(GRID_WIDTH):
        for y in range(GRID_HEIGHT):
            pygame.draw.rect(window, GRID_COLOR, (x * GRID_SIZE, y * GRID_SIZE, GRID_SIZE, GRID_SIZE), 1)

    # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° экранС
    pygame.display.flip()        

Π¨Π°Π³ 3: Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ

ΠŸΠ΅Ρ€Π΅Π΄ Ρ‚Π΅ΠΌ, ΠΊΠ°ΠΊ ΠΌΡ‹ приступим ΠΊ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ИИ, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ управлСния Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ. Π—ΠΌΠ΅ΠΉΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ способна Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π½Ρ‹Ρ… направлСниях (Π²Π²Π΅Ρ€Ρ…, Π²Π½ΠΈΠ·, Π²Π»Π΅Π²ΠΎ, Π²ΠΏΡ€Π°Π²ΠΎ) ΠΈ Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ.

import pygame

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² поля

# Код ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля...

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для управлСния Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ
UP = "up"
DOWN = "down"
LEFT = "left"
RIGHT = "right"

snake_direction = RIGHT

# Основной Ρ†ΠΈΠΊΠ» ΠΈΠ³Ρ€Ρ‹
while True:
    # Код отрисовки поля...

    # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_UP and snake_direction != DOWN:
                snake_direction = UP
            elif event.key == pygame.K_DOWN and snake_direction != UP:
                snake_direction = DOWN
            elif event.key == pygame.K_LEFT and snake_direction != RIGHT:
                snake_direction = LEFT
            elif event.key == pygame.K_RIGHT and snake_direction != LEFT:
                snake_direction = RIGHT

    # Код обновлСния состояния Π·ΠΌΠ΅ΠΉΠΊΠΈ...
            
    # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° экранС
    pygame.display.flip()

Π¨Π°Π³ 4: Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ИИ для Π·ΠΌΠ΅ΠΉΠΊΠΈ

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΡ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΠΏΡ€ΠΈΡΡ‚ΡƒΠΏΠΈΡ‚ΡŒ ΠΊ созданию ИИ для нашСй Π·ΠΌΠ΅ΠΉΠΊΠΈ. Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ простой Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ случайного Π²Ρ‹Π±ΠΎΡ€Π° направлСния двиТСния Π·ΠΌΠ΅ΠΉΠΊΠΈ. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° Π·ΠΌΠ΅ΠΉΠΊΠ° достигаСт стСнки ΠΈΠ»ΠΈ яблока, ΠΎΠ½Π° Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ случайноС Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

import pygame
import random

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² ΠΈ Ρ†Π²Π΅Ρ‚ΠΎΠ² поля

# Код ΠΈΠ³Ρ€ΠΎΠ²ΠΎΠ³ΠΎ поля...

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для управлСния Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ

# Код управлСния Π·ΠΌΠ΅ΠΉΠΊΠΎΠΉ...

# ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… для ИИ Π·ΠΌΠ΅ΠΉΠΊΠΈ
AI_UPDATE_FREQUENCY = 100  # ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ шагов ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ΠΌ ИИ
ai_counter = 0

# Основной Ρ†ΠΈΠΊΠ» ΠΈΠ³Ρ€Ρ‹
while True:
    # Код отрисовки поля...

    # Код ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий...
    
    # ОбновлСниС состояния Π·ΠΌΠ΅ΠΉΠΊΠΈ
    if ai_counter >= AI_UPDATE_FREQUENCY:
        ai_counter = 0
        
        # Π’Ρ‹Π±ΠΎΡ€ случайного направлСния для ИИ
        directions = [UP, DOWN, LEFT, RIGHT]
        new_direction = random.choice(directions)
        
        # ИзмСнСниС направлСния Π·ΠΌΠ΅ΠΉΠΊΠΈ
        if new_direction == UP and snake_direction != DOWN:
            snake_direction = UP
        elif new_direction == DOWN and snake_direction != UP:
            snake_direction = DOWN
        elif new_direction == LEFT and snake_direction != RIGHT:
            snake_direction = LEFT
        elif new_direction == RIGHT and snake_direction != LEFT:
            snake_direction = RIGHT

    # Код ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° столкновСниС со стСнкой ΠΈΠ»ΠΈ яблоком...
            
    # ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π½Π° экранС
    pygame.display.flip()

Π’Ρ‹Π²ΠΎΠ΄

ΠœΡ‹ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π»ΠΈ простой искусствСнный ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ для ΠΈΠ³Ρ€Ρ‹ "Π—ΠΌΠ΅ΠΉΠΊΠ°" Π½Π° языкС Python. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ pygame ΠΈ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ программирования, ΠΌΡ‹ создали Π·ΠΌΠ΅ΠΉΠΊΡƒ, которая способна ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΎ Π²Ρ‹Π±ΠΎΡ€Π΅ направлСния двиТСния.

Π­Ρ‚ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ являСтся Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΊΡΠΏΠ΅Ρ€ΠΈΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ с Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹ΠΌΠΈ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ°ΠΌΠΈ ИИ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π·ΠΌΠ΅ΠΉΠΊΡƒ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ ΠΈ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΊ ситуации Π² ΠΈΠ³Ρ€Π΅.

Π£Π΄Π°Ρ‡ΠΈ Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ вашСй собствСнной ΠΈΠ³Ρ€Ρ‹ "Π—ΠΌΠ΅ΠΉΠΊΠ°" с использованиСм искусствСнного ΠΈΠ½Ρ‚Π΅Π»Π»Π΅ΠΊΡ‚Π°!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Π—ΠΌΠ΅ΠΉΠΊΠ° Π½Π° Python Π·Π° 5 ΠΌΠΈΠ½ΡƒΡ‚ [ Pygame ]

Как ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΈΠ³Ρ€Ρƒ Π½Π° Python ΠΏΠΎΠ΄ Android? (PyGame)

ΠΠ•Π™Π ΠžΠ‘Π•Π’Π¬ учится ΠΈΠ³Ρ€Π°Ρ‚ΡŒ Π² Π—ΠœΠ•Π™ΠšΠ£ [ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Code Bullet]

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

🐍 Python: Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ список установлСнных ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ Π² Python

πŸ”’ Как ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ счСтчик Π² Python: основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

πŸ” КакиС сайты Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ Π½Π° Python πŸ”

🐍 Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ИИ Π½Π° Python для ΠΈΠ³Ρ€Ρ‹ Π—ΠΌΠ΅ΠΉΠΊΠ° 🐍

πŸ”‘Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… Π² ΠŸΠΈΡ‚ΠΎΠ½Π΅: простыС шаги для ΡƒΡΠΏΠ΅Ρ…Π°πŸš€

Как ввСсти Ρ†Π΅Π»ΠΎΠ΅ число Π² Python 🐍: простыС инструкции для Π²Π²ΠΎΠ΄Π°

Как ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, ΠΏΠ΅Ρ€Π΅ΡΠ΅ΠΊΠ°ΡŽΡ‚ΡΡ Π»ΠΈ окруТности Π² Python? πŸ”πŸ”„