Add 6.13 solutions
This commit is contained in:
parent
ca9fd45ea1
commit
8426560ba4
3 changed files with 154 additions and 0 deletions
58
6_tasks/6_12_07_callbacks.py
Normal file
58
6_tasks/6_12_07_callbacks.py
Normal file
|
@ -0,0 +1,58 @@
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
codes = [
|
||||||
|
"56FF4D",
|
||||||
|
"A3D2F7",
|
||||||
|
"B1C94E",
|
||||||
|
"F56A1D",
|
||||||
|
"D4E6F1",
|
||||||
|
"A1B2C3",
|
||||||
|
"D4E5F6",
|
||||||
|
"A7B8C9",
|
||||||
|
"D0E1F2",
|
||||||
|
"A3B4C5",
|
||||||
|
"D6E7F8",
|
||||||
|
"A9B0C1",
|
||||||
|
"D2E3F4",
|
||||||
|
"A5B6C7",
|
||||||
|
"D8E9F0",
|
||||||
|
]
|
||||||
|
|
||||||
|
messages = [
|
||||||
|
"Привет, мир!",
|
||||||
|
"Как дела?",
|
||||||
|
"Что нового?",
|
||||||
|
"Добрый день!",
|
||||||
|
"Пока!",
|
||||||
|
"Спокойной ночи!",
|
||||||
|
"Удачного дня!",
|
||||||
|
"Всего хорошего!",
|
||||||
|
"До встречи!",
|
||||||
|
"Счастливого пути!",
|
||||||
|
"Успехов в работе!",
|
||||||
|
"Приятного аппетита!",
|
||||||
|
"Хорошего настроения!",
|
||||||
|
"Спасибо за помощь!",
|
||||||
|
"Всего наилучшего!",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
async def print_message(message):
|
||||||
|
# print(f"Сообщение: {message}")
|
||||||
|
return message
|
||||||
|
|
||||||
|
|
||||||
|
def print_code(task: asyncio.Task):
|
||||||
|
message_code = codes.pop(0)
|
||||||
|
task_message = task.result()
|
||||||
|
print(f"Сообщение: {task_message}\nКод: {message_code}")
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
tasks = [asyncio.create_task(print_message(message)) for message in messages]
|
||||||
|
for task in tasks:
|
||||||
|
task.add_done_callback(print_code)
|
||||||
|
await task
|
||||||
|
|
||||||
|
|
||||||
|
asyncio.run(main())
|
63
6_tasks/6_12_08_callbacks.py
Normal file
63
6_tasks/6_12_08_callbacks.py
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
codes = [
|
||||||
|
"56FF4D",
|
||||||
|
"A3D2F7",
|
||||||
|
"B1C94A",
|
||||||
|
"F56A1D",
|
||||||
|
"D4E6F1",
|
||||||
|
"A1B2C3",
|
||||||
|
"D4E5F6",
|
||||||
|
"A7B8C9",
|
||||||
|
"D0E1F2",
|
||||||
|
"A3B4C5",
|
||||||
|
"D6E7F8",
|
||||||
|
"A9B0C1",
|
||||||
|
"D2E3F4",
|
||||||
|
"A5B6C7",
|
||||||
|
"D8E9F2",
|
||||||
|
]
|
||||||
|
|
||||||
|
messages = [
|
||||||
|
"Привет, мир!",
|
||||||
|
"Как дела?",
|
||||||
|
"Что нового?",
|
||||||
|
"Добрый день!",
|
||||||
|
"Пока!",
|
||||||
|
"Спокойной ночи!",
|
||||||
|
"Удачного дня!",
|
||||||
|
"Всего хорошего!",
|
||||||
|
"До встречи!",
|
||||||
|
"Счастливого пути!",
|
||||||
|
"Успехов в работе!",
|
||||||
|
"Приятного аппетита!",
|
||||||
|
"Хорошего настроения!",
|
||||||
|
"Спасибо за помощь!",
|
||||||
|
"Всего наилучшего!",
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
|
async def print_message(message_index: int):
|
||||||
|
await asyncio.sleep(message_index/100 + 0.01)
|
||||||
|
# Get code
|
||||||
|
code = codes[message_index]
|
||||||
|
if int(code[-1], 16) % 2 == 0:
|
||||||
|
print("Сообщение: Неверный код, сообщение скрыто")
|
||||||
|
else:
|
||||||
|
print(f"Сообщение: {messages[message_index]}")
|
||||||
|
return message_index
|
||||||
|
|
||||||
|
|
||||||
|
def print_code(task: asyncio.Task):
|
||||||
|
print(f"Код: {codes[task.result()]}")
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
tasks = []
|
||||||
|
for index in range(0, len(messages)):
|
||||||
|
task = asyncio.create_task(print_message(index))
|
||||||
|
task.add_done_callback(print_code)
|
||||||
|
tasks.append(task)
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
|
||||||
|
asyncio.run(main())
|
33
6_tasks/6_12_09_callbacks.py
Normal file
33
6_tasks/6_12_09_callbacks.py
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
import asyncio
|
||||||
|
import random
|
||||||
|
|
||||||
|
random.seed(5)
|
||||||
|
|
||||||
|
|
||||||
|
def on_data_parsed(task):
|
||||||
|
result = task.result()
|
||||||
|
print(f"Найдено {len(result)} файлов для скачивания: {result}")
|
||||||
|
|
||||||
|
|
||||||
|
async def parse_data(url):
|
||||||
|
await asyncio.sleep(1)
|
||||||
|
if random.choice([True, False]):
|
||||||
|
file_urls = [f"{url}/example_file.zip"]
|
||||||
|
current_task = asyncio.current_task()
|
||||||
|
current_task.add_done_callback(on_data_parsed)
|
||||||
|
else:
|
||||||
|
file_urls = []
|
||||||
|
return file_urls
|
||||||
|
|
||||||
|
|
||||||
|
async def main():
|
||||||
|
urls = [
|
||||||
|
"https://example.com/data1",
|
||||||
|
"https://example.com/data2",
|
||||||
|
"https://example.com/data3",
|
||||||
|
]
|
||||||
|
tasks = [asyncio.create_task(parse_data(url)) for url in urls]
|
||||||
|
await asyncio.gather(*tasks)
|
||||||
|
|
||||||
|
|
||||||
|
asyncio.run(main())
|
Loading…
Reference in a new issue