В файле pom.xml нужно повысить версии зависимостей 5.0 -> 6.0 и 1.4 -> 1.5
Сделай это с помощью Bash
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>1.4</version>
</plugin>
...
Сделай это с помощью Bash
...
<dependencies>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.0</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4</version>
</dependency>
</dependencies>
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>1.4</version>
</plugin>
...
Ярослав, Добрый день! Благодарим Вас за отклик на вакансию "Junior Python разработчик". Ваше резюме показалось нам очень интересным.
Мы бы хотели предложить Вам пройти тестовое задание:
Тестовое задание и дальнейшая коммуникация:
• В качестве тестового задания предлагается реализовать CRUD приложение https://forms.yandex.ru/u/5fa9755a5869a5b2a49cc9fd/
https://docs.google.com/document/d/1UBxUTuN8kAoP0mBzy5q1FJD2FN5vTdXDzMsDVLUgB1Q/edit
• Стек используемых технологий:
•
◦ Python2/3 (желательно 2)
•
◦ PyQt 4/5 (желательно 4)
•
◦ MariaDB.
• Обязательные элементы решения:
•
◦ Работающее приложение :)
•
◦ Схема БД, необходимая приложению
•
◦ Подробная инструкция по разворачиванию приложения
•
◦ Короткое руководство пользователя по приложению. Что оно может, как им пользоваться
Тестовое задание требуется выложить на github и отписаться на hh с ссылкой на тестовое.
Удачи!
С уважением,
Мурзина Елена
Мы бы хотели предложить Вам пройти тестовое задание:
Тестовое задание и дальнейшая коммуникация:
• В качестве тестового задания предлагается реализовать CRUD приложение https://forms.yandex.ru/u/5fa9755a5869a5b2a49cc9fd/
https://docs.google.com/document/d/1UBxUTuN8kAoP0mBzy5q1FJD2FN5vTdXDzMsDVLUgB1Q/edit
• Стек используемых технологий:
•
◦ Python2/3 (желательно 2)
•
◦ PyQt 4/5 (желательно 4)
•
◦ MariaDB.
• Обязательные элементы решения:
•
◦ Работающее приложение :)
•
◦ Схема БД, необходимая приложению
•
◦ Подробная инструкция по разворачиванию приложения
•
◦ Короткое руководство пользователя по приложению. Что оно может, как им пользоваться
Тестовое задание требуется выложить на github и отписаться на hh с ссылкой на тестовое.
Удачи!
С уважением,
Мурзина Елена
Forwarded from Однажды в трендах
f-строки 2.0
Python 3.8
Сложно описать словами, насколько проще и элегантнее сделали форматирование f-строки, появившиеся ещё в Python 3.6.
Сложно поверить, но Python 3.8 удалось сделать их ещё удобнее. Добавив знак = после имени подставляемой переменной, вы сможете вывести её имя и её значение без дублирования имени.
Дебаг с помощью print станет ещё удобнее
Python 3.8
Сложно описать словами, насколько проще и элегантнее сделали форматирование f-строки, появившиеся ещё в Python 3.6.
Сложно поверить, но Python 3.8 удалось сделать их ещё удобнее. Добавив знак = после имени подставляемой переменной, вы сможете вывести её имя и её значение без дублирования имени.
Дебаг с помощью print станет ещё удобнее
Forwarded from Однажды в трендах
Число в список цифр
Превращает целое число в список его цифр.
Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.
Превращает целое число в список его цифр.
Функция map() принимает желаемый тип выходных данных (в нашем случае это int, целые числа) и итерируемый объект (строку, список или кортеж), элементы которого можно превратить в элементы этого типа. После этого другая функция list() преобразует результат в список.
Forwarded from Однажды в трендах
Объединить два словаря
Для того чтобы объединить два словаря, есть как минимум два способа: прямой и современный.
Обратите внимание на то, что значения итогового словаря будут зависеть от порядка исходных словарей в функциях: если переставить местами словари a и b, значение ключа 'y' изменится на 2.
Для того чтобы объединить два словаря, есть как минимум два способа: прямой и современный.
Обратите внимание на то, что значения итогового словаря будут зависеть от порядка исходных словарей в функциях: если переставить местами словари a и b, значение ключа 'y' изменится на 2.
Forwarded from Senior Python Developer
Список импортов по умолчанию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
Таким образом, при импорте вида
Тем не менее, в примере выше импортировать функцию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
__all__, в который записываются названия объектов, которые будут подключены.Таким образом, при импорте вида
from module import * из модуля c подобной записью подключатся только объекты с названиями из списка __all__.Тем не менее, в примере выше импортировать функцию
foo из такого модуля всё ещё можно, например, с помощью записи from module import foo.Forwarded from Senior Python Developer
Список импортов по умолчанию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
Таким образом, при импорте вида
Тем не менее, в примере выше импортировать функцию
Для ограничения импорта переменных, функций и классов по умолчанию можно использовать список
__all__, в который записываются названия объектов, которые будут подключены.Таким образом, при импорте вида
from module import * из модуля c подобной записью подключатся только объекты с названиями из списка __all__.Тем не менее, в примере выше импортировать функцию
foo из такого модуля всё ещё можно, например, с помощью записи from module import foo.Forwarded from Senior Python Developer
Сортировка пузырьком
Для сортировки списков в Python уже есть встроенные функция
Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
Для сортировки списков в Python уже есть встроенные функция
sorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
Forwarded from Senior Python Developer
Делаем HTTP запросы
Пакет
Устанавливается
Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
Пакет
requests абстрагирует сложности выполнения запросов за красивым, простым API, чтобы вы могли сосредоточиться на взаимодействии с сервисами и работе с данными в ваших приложениях.Устанавливается
requests стандартным путем через пакетный менеджер pip. Запросы GET, POST, PUT и DELETE делаются интуитивно понятно. Атрибуты у объекта Response позволяют получить всю информацию об ответе от сервера.Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
Forwarded from Senior Python Developer
Получаем историю браузера 😏
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
Forwarded from Senior Python Developer
Хвостовая рекурсия
Это особый вид рекурсии, когда функция заканчивается вызовом самой себя без дополнительных операторов. Когда это условие выполняется, компилятор разворачивает рекурсию в цикл с одним стек-фреймом, просто меняя локальные переменные от итерации к итерации.
Так, классическое определение рекурсивного факториала return N * fact(N - 1) не поддерживает хвостовую рекурсию, потому что для каждого стек-фрейма придется хранить текущее значение N.
Чтобы сделать рекурсии хвостовой, добавляют параметры-аккумуляторы. Благодаря им функция знает о своем текущем состоянии. Пусть параметр acc по умолчанию равен 1. Тогда запись с хвостовой рекурсией будет выглядеть так(см картинку).
Это особый вид рекурсии, когда функция заканчивается вызовом самой себя без дополнительных операторов. Когда это условие выполняется, компилятор разворачивает рекурсию в цикл с одним стек-фреймом, просто меняя локальные переменные от итерации к итерации.
Так, классическое определение рекурсивного факториала return N * fact(N - 1) не поддерживает хвостовую рекурсию, потому что для каждого стек-фрейма придется хранить текущее значение N.
Чтобы сделать рекурсии хвостовой, добавляют параметры-аккумуляторы. Благодаря им функция знает о своем текущем состоянии. Пусть параметр acc по умолчанию равен 1. Тогда запись с хвостовой рекурсией будет выглядеть так(см картинку).
Forwarded from Senior Python Developer
Сортировка пузырьком
Для сортировки списков в Python уже есть встроенные функция
Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
Для сортировки списков в Python уже есть встроенные функция
sorted() и метод .sorted(), но достаточно важно самому знать хотя бы несколько реализаций.Суть алгоритма в том, что совершается несколько проходов по массиву. При проходе последовательно сравниваются пары элементов в массиве и в случае несоответствия выбранному порядку меняются местами. Если пары элементов находятся в верном порядке, то ничего не происходит.
В результате первого прохода максимальный элемент окажется в конце, то есть всплывет словно пузырек. Затем все повторяется до того момента пока весь массив не будет отсортирован. Последний проход будет по отсортированному массиву.
Forwarded from Senior Python Developer
Делаем HTTP запросы
Пакет
Устанавливается
Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
Пакет
requests абстрагирует сложности выполнения запросов за красивым, простым API, чтобы вы могли сосредоточиться на взаимодействии с сервисами и работе с данными в ваших приложениях.Устанавливается
requests стандартным путем через пакетный менеджер pip. Запросы GET, POST, PUT и DELETE делаются интуитивно понятно. Атрибуты у объекта Response позволяют получить всю информацию об ответе от сервера.Модуль идеально подходит как для работы со внешними API веб-сервисов, так и для получения HTML кода веб-страниц.
Forwarded from Senior Python Developer
Получаем историю браузера 😏
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
browser-history— это простой, не требующий никаких зависимостей, удобный для разработчиков пакет Python для извлечения (почти) всей истории любого браузера на (почти) любой платформе.
Документация пакета лежит здесь.
Forwarded from Senior Python Developer
Хвостовая рекурсия
Это особый вид рекурсии, когда функция заканчивается вызовом самой себя без дополнительных операторов. Когда это условие выполняется, компилятор разворачивает рекурсию в цикл с одним стек-фреймом, просто меняя локальные переменные от итерации к итерации.
Так, классическое определение рекурсивного факториала return N * fact(N - 1) не поддерживает хвостовую рекурсию, потому что для каждого стек-фрейма придется хранить текущее значение N.
Чтобы сделать рекурсии хвостовой, добавляют параметры-аккумуляторы. Благодаря им функция знает о своем текущем состоянии. Пусть параметр acc по умолчанию равен 1. Тогда запись с хвостовой рекурсией будет выглядеть так(см картинку).
Это особый вид рекурсии, когда функция заканчивается вызовом самой себя без дополнительных операторов. Когда это условие выполняется, компилятор разворачивает рекурсию в цикл с одним стек-фреймом, просто меняя локальные переменные от итерации к итерации.
Так, классическое определение рекурсивного факториала return N * fact(N - 1) не поддерживает хвостовую рекурсию, потому что для каждого стек-фрейма придется хранить текущее значение N.
Чтобы сделать рекурсии хвостовой, добавляют параметры-аккумуляторы. Благодаря им функция знает о своем текущем состоянии. Пусть параметр acc по умолчанию равен 1. Тогда запись с хвостовой рекурсией будет выглядеть так(см картинку).
Forwarded from Senior Python Developer
Проверка возможности вызова
Есть встроенная возможность быстро проверить, получится ли вызвать ту или иную переменную с помощью (). Для этого можно вызвать функцию callable.
Есть встроенная возможность быстро проверить, получится ли вызвать ту или иную переменную с помощью (). Для этого можно вызвать функцию callable.
Forwarded from Senior Python Developer
Самый часто встречаемый элемент списка
Данная функция
Данная функция
most_frequent возвращает элементы, появляющиеся в списке чаще остальных.Forwarded from Senior Python Developer
Изменение размера изображения
Чтобы изменить размер изображения с помощью Pillow, вы можете использовать метод resize() класса PIL.Image.Image.
В следующем примере мы прочитаем изображение и изменим его размер до (200, 200).
Чтобы изменить размер изображения с помощью Pillow, вы можете использовать метод resize() класса PIL.Image.Image.
В следующем примере мы прочитаем изображение и изменим его размер до (200, 200).