Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите решить задание на python

Andgelina Lugovaya Ученик (101), на голосовании 1 месяц назад
Создать программу, которая использует очередь для обработки входящих сообщений в чате: сообщения должны добавляться в очередь, обрабатыватьсч последовательно, их содержание вводится на экран, а затем удаляется из очереди
Голосование за лучший ответ
Resurce InheiT Профи (718) 2 месяца назад
 import queue 
import time

class ChatQueue:
def __init__(self):
self.queue = queue.Queue()

def add_message(self, message):
self.queue.put(message)
print(f"Сообщение добавлено в очередь: {message}")

def process_messages(self):
while not self.queue.empty():
message = self.queue.get()
print(f"Обработка сообщения: {message}")
time.sleep(1)
print(f"Сообщение обработано: {message}")
self.queue.task_done()

def main():
chat_queue = ChatQueue()
chat_queue.add_message("Привет!")
chat_queue.add_message("Как дела?")
chat_queue.add_message("У вас есть вопросы?")
print("Начало обработки сообщений...")
chat_queue.process_messages()
print("Все сообщения обработаны.")

if __name__ == "__main__":
main()
Arie Benz Просветленный (36678) 2 месяца назад
 from queue import Queue

q = Queue()

while True:
msg = input()
q.put(msg)

while not q.empty():
msg = q.get()
print(msg)
Sergio 2.1 Оракул (63896) 2 месяца назад
 from collections import deque 
import threading
import time

class ChatQueue:
def __init__(self):
self.queue = deque()
self.lock = threading.Lock()
self.processing = False

def add_message(self, message):
with self.lock:
self.queue.append(message)
if not self.processing:
self.process_messages()

def process_messages(self):
self.processing = True
threading.Thread(target=self._process).start()

def _process(self):
while True:
with self.lock:
if not self.queue:
self.processing = False
break
message = self.queue.popleft()

print(f"Обработка сообщения: {message}")
time.sleep(1) # Имитация обработки сообщения

def main():
chat_queue = ChatQueue()

while True:
message = input("Введите сообщение (или 'q' для выхода): ")
if message.lower() == 'q':
break
chat_queue.add_message(message)

if __name__ == "__main__":
main()
Помощник PYTHON Профи (607) 2 месяца назад
Конечно, вот пример программы на Python, который реализует указанное задание:

 from collections import deque

# Создаем пустую очередь
messages_queue = deque()

# Функция для добавления сообщения в очередь
def add_message(message):
messages_queue.append(message)

# Функция для обработки сообщений в очереди
def process_messages():
while messages_queue:
message = messages_queue.popleft()
print("Обрабатываем сообщение:", message)

# Добавляем сообщения в очередь
add_message("Привет, как дела?")
add_message("Что нового?")
add_message("Пока!")

# Обрабатываем сообщения
process_messages()
```

Вы можете запустить этот код в вашей среде разработки Python, чтобы увидеть, как он добавляет сообщения в очередь, обрабатывает их и удаляет из очереди. Надеюсь, это поможет вам решить задание! Если у вас есть еще вопросы или нужна дополнительная помощь, не стесняйтесь обращаться.
Марк Поселёнов Ученик (107) 2 месяца назад
import queue
import time

class ChatProcessor:
def __init__(self):
self.message_queue = queue.Queue()

def add_message(self, message):
self.message_queue.put(message)
print(f"Message added: {message}")

def process_messages(self):
while not self.message_queue.empty():
message = self.message_queue.get()
print(f"Processing message: {message}")
self.message_queue.task_done()
time.sleep(1) # Симуляция задержки обработки сообщения

if __name__ == "__main__":
chat = ChatProcessor()

# Добавление сообщений в очередь
chat.add_message("Hello!")
chat.add_message("How are you?")
chat.add_message("Goodbye!")

# Обработка сообщений
chat.process_messages()
Похожие вопросы