Python [Тимур Гуев, Артур Харисов] [Школа BEEGEEK] "Поколение Python": курс для профессионалов (2022)

Автор: Тимур Гуев, Артур Харисов
Название: [Школа BEEGEEK] "Поколение Python": курс для профессионалов (2022)

[Тимур Гуев, Артур Харисов] [Школа BEEGEEK] "Поколение Python": курс для профессионалов (2022)


Курс продолжает серию "Поколение Python" и рассказывает о дополнительных возможностях языка Python, а тренировочные задачи помогают закрепить каждую тему.

"Поколение Python": курс для профессионалов.
  • продолжает линию курсов "Поколение Python"
  • адресован знающим базовые конструкции и типы данных языка Python
  • знакомит с дополнительными возможностями языка Python
В курсе рассматриваются даты и время, дополнительные типы коллекций, итераторы, генераторы, декораторы, рекурсия, исключения, регулярные выражения и многое другое.
Курс разбит на 12 модулей с теоретическими и практическими материалами, а также заданиями.

Модули курса:
  1. О курсе
  2. Повторяем основные конструкции языка Python
  3. Работа с датой и временем
  4. Работа с файлами
  5. Устройство памяти и особенности типов данных
  6. Дополнительные типы коллекций
  7. Обработка исключений
  8. Рекурсия
  9. Функции
  10. Итераторы и генераторы
  11. Регулярные выражения
  12. Заключение
Решения проверяет автоматическая система, поэтому обратную связь вы получите очень быстро. Если у вас возникнут проблемы, команда курса даст советы и подсказки.
Кроме того, все возникшие сложности всегда можно обсудить с однокурсниками в комментариях к задачам и на специальном сервере в Discord.

Для кого этот курс:
Курс рассчитан на всех желающих познакомиться с дополнительными возможностями языка Python.

Начальные требования:
Для успешного освоения данного курса нужно пройти предыдущие курсы:

  1. "Поколение Python": курс для начинающих
  2. "Поколение Python": курс для продвинутых

Подробнее:
Авторизуйтесь, чтобы посмотреть скрытый контент.

Скачать:
Авторизуйтесь, чтобы посмотреть скрытый контент.
 
Mant1k0r
Mant1k0r
Премиум
badge badge badge badge
Регистрация
28/11/2018
Сообщения
402
Репутация
1.859
Поколение пайтон лучше проходить на степике, так как много задач с проверкой дается)
 
yashin
yashin
Премиум
badge badge badge badge
Регистрация
15/07/2019
Сообщения
17
Репутация
56
bunio
Премиум
badge
Регистрация
13/08/2019
Сообщения
7
Репутация
9
Задания в зип файлах куда-то скормить можно, чтобы проверка проходила?
Что за формат .clue?
 
aldsife
aldsife
Премиум
badge badge badge
Регистрация
03/04/2019
Сообщения
7
Репутация
58
Написал самописное прохождение проверок, оформляется в виде декоратора к функция, куда нужно передать только путь к zip-архиву, либо папке:

Python:
import os
import re
import zipfile
from io import StringIO
from collections import Counter
from contextlib import redirect_stdout
from typing import Callable, Optional, Iterable, Any

def run_tests(tests_path: Optional[str] = None) -> Callable:
    """
    Запускаем тесты из zip архива или папки с тестами.
    """
    def decorator(func: Callable) -> Callable:
        def wrapper(*args, **kwargs) -> Any:
            return func(*args, **kwargs)
        if tests_path is not None:
            tests_dir = os.path.join(os.path.dirname(tests_path), os.path.basename(tests_path).split('.')[0])
            # если архив, то разархивируем содержимое в папку с таким же названием
            if tests_path.endswith('zip'):
                with zipfile.ZipFile(tests_path, 'r') as zip_ref:
                    zip_ref.extractall(tests_dir)
            # запускаем тестовые данные
            test_pairs = tuple(file for file in sorted(os.listdir(tests_dir), key=lambda x: int(x.split('.')[0])) if os.path.basename(file).isdigit())
            for test_num in test_pairs:
                print(f'\n\033[1mRunning test {test_num}...\033[0m')
                with (
                    open(os.path.join(tests_dir, test_num), 'r', encoding='utf-8') as test_ref,
                    open(os.path.join(tests_dir, test_num + '.clue'), 'r', encoding='utf-8') as clue
                ):
                    test_code = test_ref.read()
                    with redirect_stdout(StringIO()) as f:
                        exec(test_code.replace(func.__name__, 'func'))
                    checked_value = clue.read()
                    if (f.getvalue().strip() == checked_value) == True:
                        print('\033[34mТЕСТ ПРОЙДЕН\033[0m')
                    else:
                        print('\033[31mТЕСТ ПРОВАЛЕН\033[0m')
                        print(f'Во время исполнения кода:\n{test_code}')
                        print(f'\nОжидаемый результат:\n{checked_value}\n')
                        break
                    f.truncate(0)
        return wrapper
    return decorator

Выглядит это примерно так:
1708852392036.png
 
Последнее редактирование:
ba2ra
ba2ra
Премиум
badge badge
Регистрация
13/05/2019
Сообщения
2
Репутация
1
Написал самописное прохождение проверок, оформляется в виде декоратора к функция, куда нужно передать только путь к zip-архиву, либо папке:

Python:
import os
import re
import zipfile
from io import StringIO
from collections import Counter
from contextlib import redirect_stdout
from typing import Callable, Optional, Iterable, Any

def run_tests(tests_path: Optional[str] = None) -> Callable:
    """
    Запускаем тесты из zip архива или папки с тестами.
    """
    def decorator(func: Callable) -> Callable:
        def wrapper(*args, **kwargs) -> Any:
            return func(*args, **kwargs)
        if tests_path is not None:
            tests_dir = os.path.join(os.path.dirname(tests_path), os.path.basename(tests_path).split('.')[0])
            # если архив, то разархивируем содержимое в папку с таким же названием
            if tests_path.endswith('zip'):
                with zipfile.ZipFile(tests_path, 'r') as zip_ref:
                    zip_ref.extractall(tests_dir)
            # запускаем тестовые данные
            test_pairs = tuple(file for file in sorted(os.listdir(tests_dir), key=lambda x: int(x.split('.')[0])) if os.path.basename(file).isdigit())
            for test_num in test_pairs:
                print(f'\n\033[1mRunning test {test_num}...\033[0m')
                with (
                    open(os.path.join(tests_dir, test_num), 'r', encoding='utf-8') as test_ref,
                    open(os.path.join(tests_dir, test_num + '.clue'), 'r', encoding='utf-8') as clue
                ):
                    test_code = test_ref.read()
                    with redirect_stdout(StringIO()) as f:
                        exec(test_code.replace(func.__name__, 'func'))
                    checked_value = clue.read()
                    if (f.getvalue().strip() == checked_value) == True:
                        print('\033[34mТЕСТ ПРОЙДЕН\033[0m')
                    else:
                        print('\033[31mТЕСТ ПРОВАЛЕН\033[0m')
                        print(f'Во время исполнения кода:\n{test_code}')
                        print(f'\nОжидаемый результат:\n{checked_value}\n')
                        break
                    f.truncate(0)
        return wrapper
    return decorator

Выглядит это примерно так:
Круто!!!
 

Создайте учетную запись или войдите, чтобы комментировать или скачивать материалы!

У вас должна быть учетная запись, чтобы оставлять комментарии

Зарегистрироваться

Создайте учетную запись. Это просто!

Авторизоваться

У вас уже есть аккаунт? Войдите здесь.

Последние темы автора

Алан-э-Дейл
Ответы
5
Просмотры
7K
meow_meow
Алан-э-Дейл
Ответы
1
Просмотры
10K
VIT1103
VIT1103
Алан-э-Дейл
Ответы
2
Просмотры
4K
Captain Sparrow
Captain Sparrow
Алан-э-Дейл
Ответы
3
Просмотры
8K
Lora81
Lora81

Похожие темы

Брат Тук
Ответы
0
Просмотры
550
Брат Тук
Брат Тук
Брат Тук
Ответы
0
Просмотры
3K
Брат Тук
Брат Тук
Брат Тук
Ответы
3
Просмотры
2K
ishkining
ishkining
Брат Тук
Ответы
0
Просмотры
554
Брат Тук
Брат Тук
Брат Тук
Ответы
0
Просмотры
3K
Брат Тук
Брат Тук
Роджерc
Ответы
7
Просмотры
6K
Velmer31
Velmer31
Малыш Джон
Ответы
22
Просмотры
24K
rtahir1995
rtahir1995
artemenovs
Ответы
3
Просмотры
3K
sol123
sol123
Алан-э-Дейл
Ответы
5
Просмотры
4K
gqqdart
Малыш Джон
Ответы
1
Просмотры
3K
nefalem
Сверху Снизу