πŸ”₯ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: пошаговая инструкция для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² πŸ”₯

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° Python? Π’ΠΎΡ‚ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Π²Π°ΠΌ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ простой ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° языкС Python, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ socket:

    import socket

    def start_chat():
        server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        server_socket.bind(('localhost', 12345))
        server_socket.listen(1)

        print('Π‘Π΅Ρ€Π²Π΅Ρ€ Π·Π°ΠΏΡƒΡ‰Π΅Π½ ΠΈ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ...')

        while True:
            client_socket, client_address = server_socket.accept()
            print(f'ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ клиСнтскоС соСдинСниС ΠΎΡ‚ {client_address}')

            # ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° сообщСний ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
            while True:
                message = client_socket.recv(1024).decode('utf-8')
                print(f'ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎ сообщСниС ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°: {message}')
                
                # Π—Π΄Π΅ΡΡŒ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΎΠ³ΠΈΠΊΡƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΡƒ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ
                
                if message == 'exit':
                    break
            
            print(f'ΠšΠ»ΠΈΠ΅Π½Ρ‚ΡΠΊΠΎΠ΅ соСдинСниС с {client_address} Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΎ')
            client_socket.close()
            
        server_socket.close()

    if __name__ == '__main__':
        start_chat()
    
Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм сСрвСрный сокСт ΠΈ ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ. ПослС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΌΡ‹ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ†ΠΈΠΊΠ» для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΡƒΡŽ Π»ΠΎΠ³ΠΈΠΊΡƒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний ΠΈ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. НС Π·Π°Π±ΡƒΠ΄ΡŒΡ‚Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ адрСс хоста ΠΈ ΠΏΠΎΡ€Ρ‚ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π½Π° свои значСния. Π£Π΄Π°Ρ‡ΠΈ с созданиСм ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚Π° Π½Π° Python!

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

Как Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅

ΠŸΠΈΡΠ°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° Python ΠΌΠΎΠΆΠ½ΠΎ с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ, Π½ΠΎ ΠΎΠ΄Π½ΠΈΠΌ ΠΈΠ· Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ распространСнных инструмСнтов являСтся Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Socket. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрим ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ свой собствСнный ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅.

Π¨Π°Π³ 1: Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ сСрвСра

Π‘Π½Π°Ρ‡Π°Π»Π° ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Socket для этого.


import socket

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ сСрвСрный сокСт
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠΎΡ€Ρ‚ ΠΈ IP-адрСс сСрвСра
server_host = 'localhost'
server_port = 12345

# ΠŸΡ€ΠΈΠ²ΡΠ·Ρ‹Π²Π°Π΅ΠΌ сокСт ΠΊ адрСсу ΠΈ ΠΏΠΎΡ€Ρ‚Ρƒ
server_socket.bind((server_host, server_port))

# Π‘Π»ΡƒΡˆΠ°Π΅ΠΌ входящиС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ
server_socket.listen()

print(f"Π‘Π΅Ρ€Π²Π΅Ρ€ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π½Π° {server_host}:{server_port}")

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм сСрвСрный сокСт, связываСм Π΅Π³ΠΎ с IP-адрСсом ΠΈ ΠΏΠΎΡ€Ρ‚ΠΎΠΌ, ΠΏΡ€ΠΎΡΠ»ΡƒΡˆΠΈΠ²Π°Π΅ΠΌ входящиС ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌ сообщСниС ΠΎ запускС сСрвСра.

Π¨Π°Π³ 2: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°

ПослС создания сСрвСра ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ². ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π·, ΠΊΠΎΠ³Π΄Π° ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΅Π³ΠΎ сообщСний.


import threading

def handle_client(client_socket, address):
    while True:
        # ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°
        data = client_socket.recv(1024).decode('utf-8')
        
        if not data:
            # Если Π΄Π°Π½Π½Ρ‹Π΅ Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Ρ‹, ΠΊΠ»ΠΈΠ΅Π½Ρ‚ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ
            print(f"{address} ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ.")
            break
        
        # ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ всСм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ
        broadcast(data)
    
    # Π—Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ клиСнтский сокСт
    client_socket.close()

def broadcast(message):
    for client, _ in clients:
        # ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ сообщСниС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ
        client.send(message.encode('utf-8'))

# Бписок ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹Ρ… ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠ²
clients = []

while True:
    # ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅
    client_socket, address = server_socket.accept()
    
    # ДобавляСм ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² список
    clients.append((client_socket, address))
    
    # ЗапускаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний с этим ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ
    client_thread = threading.Thread(target=handle_client, args=(client_socket, address))
    client_thread.start()

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ handle_client, которая ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎΡ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, отправляСт ΠΈΡ… всСм ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°ΠΌ ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, Ссли ΠΎΠ½ отправляСт пустоС сообщСниС ΠΈΠ»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ создаСм Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ broadcast, которая отправляСт сообщСниС ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΌΡƒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Ρƒ. Π—Π°Ρ‚Π΅ΠΌ ΠΌΡ‹ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈ запускаСм Π½ΠΎΠ²Ρ‹ΠΉ ΠΏΠΎΡ‚ΠΎΠΊ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ сообщСний с этим ΠΊΠ»ΠΈΠ΅Π½Ρ‚ΠΎΠΌ.

Π¨Π°Π³ 3: ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Ρ‡Π΅Ρ€Π΅Π· сокСт

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ наш ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚, Π½Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ сСрвСру.


import socket

# Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ клиСнтский сокСт
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Π—Π°Π΄Π°Π΅ΠΌ ΠΏΠΎΡ€Ρ‚ ΠΈ IP-адрСс сСрвСра
server_host = 'localhost'
server_port = 12345

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСрвСру
client_socket.connect((server_host, server_port))

while True:
    # Π’Π²ΠΎΠ΄ΠΈΠΌ сообщСниС для ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ
    message = input("Π’Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС: ")
    
    # ΠžΡ‚ΠΏΡ€Π°Π²Π»ΡΠ΅ΠΌ сообщСниС сСрвСру
    client_socket.send(message.encode('utf-8'))
    
    if message == 'exit':
        # Если Π²Π²Π΅Π΄Π΅Π½ΠΎ 'exit', Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ клиСнтский сокСт ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°
        client_socket.close()
        break
    
    # ΠŸΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅ΠΌ ΠΎΡ‚Π²Π΅Ρ‚ ΠΎΡ‚ сСрвСра
    data = client_socket.recv(1024).decode('utf-8')
    print("ΠžΡ‚Π²Π΅Ρ‚ сСрвСра:", data)

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ создаСм клиСнтский сокСт, Π·Π°Π΄Π°Π΅ΠΌ IP-адрСс ΠΈ ΠΏΠΎΡ€Ρ‚ сСрвСра, ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌΡΡ ΠΊ сСрвСру ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Ρ‚ΡŒ сообщСния. Если ΠΌΡ‹ Π²Π²ΠΎΠ΄ΠΈΠΌ 'exit', ΠΌΡ‹ Π·Π°ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌ клиСнтский сокСт ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π°.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Ρƒ вас Π΅ΡΡ‚ΡŒ основа для написания ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚Π° Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅ с использованиСм Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Socket. Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ Π΅Π³ΠΎ, Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈΡ сообщСний ΠΈΠ»ΠΈ Π΄ΠΈΠ·Π°ΠΉΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ интСрфСйса, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΠ΄ΠΎΠ±Π½Ρ‹ΠΌ ΠΈ бСзопасным для использования.

НадСюсь, этот ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎΠΌΠΎΠ³ Π²Π°ΠΌ Π»ΡƒΡ‡ΡˆΠ΅ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΊΠ°ΠΊ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅. Π£Π΄Π°Ρ‡ΠΈ Π² вашСм ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ!

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

Онлайн Ρ‡Π°Ρ‚ Π½Π° Python Π² 100 строк ΠΊΠΎΠ΄Π°!

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ простого Ρ‡Π°Ρ‚Π° Π½Π° python

ΠŸΡ€ΠΎΠ΅ΠΊΡ‚Ρ‹ Π½Π° PYTHON / Π‘ΠžΠ—Π”ΠΠΠ˜Π• ЧАВА с графичСским интСрфСйсом

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

Как вывСсти самоС большоС число ΠΈΠ· списка Python? πŸ”

🐍Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π² ΠΏΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство для Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΠΈΡ…

πŸ”§ Как ΠΎΠ±Π½ΠΎΠ²ΠΈΡ‚ΡŒ Python Π½Π° Raspberry? Π£Π»ΡƒΡ‡ΡˆΠ°Π΅ΠΌ свою ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ!

πŸ”₯ Как ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Ρ‡Π°Ρ‚ Π½Π° ΠΏΠΈΡ‚ΠΎΠ½Π΅: пошаговая инструкция для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² πŸ”₯

πŸ” Как ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ return Π² Python: ΠΏΠΎΠ»Π΅Π·Π½Ρ‹Π΅ совСты ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ΄Π°

Как ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠΌΠ΅Ρ€ символа Π² Python? 🐍✨ Π£Π·Π½Π°ΠΉΡ‚Π΅ простой способ!

πŸ€– Как ΠΏΠΈΡΠ°Ρ‚ΡŒ Π±ΠΎΡ‚ΠΎΠ² для Дискорда Π½Π° ΠŸΠΈΡ‚ΠΎΠ½Π΅: ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ руководство! 🐍