Я знаю что так будет, но почему?
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#объяснение
Во первых вспоминаем, что значения по умолчанию генерируются только один раз и хранятся в
func.__defaults__
.Во вторых, вспоминаем про булевые операции, что они могут возвращать не только True/False, а и сами значения.
#объяснение
Принцип DRY
Don't repeat yourself («не повторяйся») — этот принцип означает, что стоит избегать дублирования кода или данных.
Внесение изменений в такой код становится в разы сложнее. Что если вы забыли добавить фичу в другом файле? Этот вопрос не даст вам покоя.
Следование принципу приводит проект к модульной архитектуре с чётким разделением между бизнес-логикой и программными классами.
#принцип #dry
Don't repeat yourself («не повторяйся») — этот принцип означает, что стоит избегать дублирования кода или данных.
Внесение изменений в такой код становится в разы сложнее. Что если вы забыли добавить фичу в другом файле? Этот вопрос не даст вам покоя.
Следование принципу приводит проект к модульной архитектуре с чётким разделением между бизнес-логикой и программными классами.
#принцип #dry
Про метод
Тогда ряды пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
#объяснение
str.split(sep)
Все знают, что он разделяет строку по sep, но у него есть свои особенности. И первое, это если sep не указан, то есть None.Тогда ряды пробелов рассматриваются как один разделитель и, к тому же, в результате не будет пустых строк в начале и в конце.
Если sep передан, то разделители не группируются, а значит на месте повторов образуется
''
. Также, разделение пустой строки всегда вернёт ['']
.#объяснение
Принцип YAGNI
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё может уйти больше времени на разработку. К тому же, каждая функция должна оплачиваться и, чаще всего, из кошелька клиента.
Кратко: если новая фича может принести пользу и при этом не потратит много времени/денег, то внедряйте, но перед этим обсудите с клиентом.
#принцип
Вам это не нужно. Не добавляйте кнопку, если вас об этом не просили. Не убивайте всё время на супер быстрый движок, если вас об этом не просили.
Инициатива это хорошо, но из-за неё может уйти больше времени на разработку. К тому же, каждая функция должна оплачиваться и, чаще всего, из кошелька клиента.
Кратко: если новая фича может принести пользу и при этом не потратит много времени/денег, то внедряйте, но перед этим обсудите с клиентом.
#принцип
📓 Python 3. Самое необходимое.
• Описан базовый синтаксис языка Python 3: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, обработка исключений, часто используемые модули стандартной библиотеки и установка дополнительных модулей. Даны основы SQLite, описан интерфейс доступа к базам данных SQLite и MySQL, в том числе посредством ODBC. Рассмотрена работа с изображениями с помощью библиотек Pillow и Wand, получение данных из Интернета и использование архивов различных форматов.
• Книга содержит более двухсот практических примеров, помогающих начать программировать на языке Python самостоятельно.
#RU
• Описан базовый синтаксис языка Python 3: типы данных, операторы, условия, циклы, регулярные выражения, встроенные функции, объектно-ориентированное программирование, обработка исключений, часто используемые модули стандартной библиотеки и установка дополнительных модулей. Даны основы SQLite, описан интерфейс доступа к базам данных SQLite и MySQL, в том числе посредством ODBC. Рассмотрена работа с изображениями с помощью библиотек Pillow и Wand, получение данных из Интернета и использование архивов различных форматов.
• Книга содержит более двухсот практических примеров, помогающих начать программировать на языке Python самостоятельно.
#RU
Python 3. Самое необходимое..pdf
29.7 MB
Python 3. Самое необходимое.
2019 #RU
2019 #RU
Менять списки во время итерации плохая идея, и вот почему:
С помощью итератора мы можем пройтись по элементам списка, так давайте напишем свой итератор и посмотрим, что там происходит внутри.
Как мы видим, поскольку удалили 1 из списка, все элементы сместились влево и на второй позиции уже будет не двойка а тройка.
Её тоже удаляем и получаем
#объяснение
С помощью итератора мы можем пройтись по элементам списка, так давайте напишем свой итератор и посмотрим, что там происходит внутри.
Как мы видим, поскольку удалили 1 из списка, все элементы сместились влево и на второй позиции уже будет не двойка а тройка.
Её тоже удаляем и получаем
[2, 4]
. Поскольку дальше двигаться некуда, итератор останавливает свою работу.#объяснение
⚡️ Учим Python с GitHub
python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.
TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных
python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
python-guide — проект-документация по языку, от новичка до профи. Качать его не обязательно, ведь есть и веб версия.
TheAlgorithms — репозиторий с огромным количеством реализованных алгоритмов, структур данных
python-patterns — набор шаблонов проектирования, написанных на Python. Здесь нет ConcreteObserver2 и подобного, все шаблоны разобраны на реальных примерах.
#миниурок
⚡️ Упрощаем поиск багов
Функция поиска площади квадрата со стороной 5 должна возвращать 25. А если не вернёт? Самый быстрый способ это проверять — использовать assert.
Если оператор получает на первый аргумент False, то выводит AssertionError с текстом из второго аргумента (если таков имеется).
Чтобы убрать проверку, добавьте флаг -O при запуске приложения:
#теория
Функция поиска площади квадрата со стороной 5 должна возвращать 25. А если не вернёт? Самый быстрый способ это проверять — использовать assert.
Если оператор получает на первый аргумент False, то выводит AssertionError с текстом из второго аргумента (если таков имеется).
Чтобы убрать проверку, добавьте флаг -O при запуске приложения:
python3 -O foo.py
. Подробнее в документации.#теория
com.foobnix.pro.pdf.reader_4000.apk
48.3 MB
🧩 Librera Reader.
Читалка книг
• Librera Reader - это гибко настраиваемое и многофункциональное приложение для чтения книг на Android устройствах,
которое поддерживает множество форматов: PDF, EPUB, MOBI, DjVu, FB2, TXT, RTF, AZW, AZW3, HTML, CBZ, CBR.
Обладая интуитивно понятным и удобным интерфейсом, Librera поможет вам получить настоящее удовольствие от чтения книги.
• Для большей безопасности Librera Reader для F-Droid использует MuPDF 1.16.1 и не требует разрешения Интернет.
https://f-droid.org/ru/packages/com.foobnix.pro.pdf.reader/
#Librera #SOFT
Читалка книг
• Librera Reader - это гибко настраиваемое и многофункциональное приложение для чтения книг на Android устройствах,
которое поддерживает множество форматов: PDF, EPUB, MOBI, DjVu, FB2, TXT, RTF, AZW, AZW3, HTML, CBZ, CBR.
Обладая интуитивно понятным и удобным интерфейсом, Librera поможет вам получить настоящее удовольствие от чтения книги.
• Для большей безопасности Librera Reader для F-Droid использует MuPDF 1.16.1 и не требует разрешения Интернет.
https://f-droid.org/ru/packages/com.foobnix.pro.pdf.reader/
#Librera #SOFT
Что?
Буквы сортируются не в алфавитном порядке, а по позиции в таблице UTF-16, получить значение которого можно с помощью
В верхнем регистре символы имеют меньшее значение, чем в нижнем, поэтому они оказались в начале списка.
#объяснение
Буквы сортируются не в алфавитном порядке, а по позиции в таблице UTF-16, получить значение которого можно с помощью
ord(x)
.В верхнем регистре символы имеют меньшее значение, чем в нижнем, поэтому они оказались в начале списка.
#объяснение
⚡️ Context Manager
Помните про with? Там рассказывалось про его использование с классами, но ничто не мешает использовать его с функциями. Только нужна библиотека contextlib.
Чтобы функция могла работать с with, вы добавляете
Только ещё вам нужно yield, чтобы вернуть объект, с которым будет работать with и при этом только приостановить работу функции. Подробнее.
#миниурок #contextlib
Помните про with? Там рассказывалось про его использование с классами, но ничто не мешает использовать его с функциями. Только нужна библиотека contextlib.
Чтобы функция могла работать с with, вы добавляете
@contextmanager
или @asynccontextmanager
, в зависимости от того, нужно ли вам асинхронное выполнение.Только ещё вам нужно yield, чтобы вернуть объект, с которым будет работать with и при этом только приостановить работу функции. Подробнее.
#миниурок #contextlib
⚡️ Создаём интерфейс командной строки
Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.
Установка:
Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.
#миниурок #fire
Если вы пишите консольное приложение, то обязаны позаботиться о том, чтобы пользователям было удобно им пользоваться. CLI вам поможет создать fire.
Установка:
pip install fire
Модуль придерживается ООПшного стиля, что сильно упрощает интеграцию к себе в проект.Также он предоставляет доступ ко всем атрибутам, которые переданы в него. Об этом и не только подробнее в документации.
#миниурок #fire
Как определить истинный этот объект или нет?
Многие знают, что в Python всё можно перевести в bool. Пустые последовательности и коллекции ('', [], (), {}, range(0)), None и 0 возвращают False. Остальное — True.
Но как это просчитывается? Вызывается
Если ни одна из функций не определена, то объекты считаются True.
#объяснение
Многие знают, что в Python всё можно перевести в bool. Пустые последовательности и коллекции ('', [], (), {}, range(0)), None и 0 возвращают False. Остальное — True.
Но как это просчитывается? Вызывается
__bool__()
метод, который возвращает True/False. Если его нет, используется __len__()
. Если метод вернёт 0, то результат будет False.Если ни одна из функций не определена, то объекты считаются True.
#объяснение
Media is too big
VIEW IN TELEGRAM
Python для начинающих
В этом видеоуроке автор разбирает язык Python для начинающих. Этот урок поможет сформировать базовое представление о программировании и самом языке. Его можно использовать как начальное пособие и после переходить к более глубокому изучению.
00:00 Вступление
00:41 Установка Python и Pycharm
04:57 Консольные ввод и вывод
08:56 Переменные
18:22 Операторы
25:30 Условный оператор
30:55 Работа со списками
36:16 Работа с словарями
42:34 Цикл while
46:13 Цикл for
51:22 Функции
Смотреть это видео на youtube: youtu.be/ZY-uCwE8u9k
В этом видеоуроке автор разбирает язык Python для начинающих. Этот урок поможет сформировать базовое представление о программировании и самом языке. Его можно использовать как начальное пособие и после переходить к более глубокому изучению.
00:00 Вступление
00:41 Установка Python и Pycharm
04:57 Консольные ввод и вывод
08:56 Переменные
18:22 Операторы
25:30 Условный оператор
30:55 Работа со списками
36:16 Работа с словарями
42:34 Цикл while
46:13 Цикл for
51:22 Функции
Смотреть это видео на youtube: youtu.be/ZY-uCwE8u9k
Любопытно
Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
#объяснение
round(x)
округляет значения до ближайшего чётного числа (в документации так и написано). В википедии можно даже найти такое правило. Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
ctx.rounding = ROUND_HALF_UP
. Подробнее.#объяснение
🎙 Голосовой ассистент на Python
Хочешь управлять компьютером с помощью голоса?
В детстве смотря фантастические фильмы мечтал создать программу с помощью которой мог бы управлять компьютером с помощью голоса. В данном видео пошагово пишем голосового помощника на языке Python c помощью библиотек
https://www.youtube.com/watch?v=ZZVWae8E9K0
Хочешь управлять компьютером с помощью голоса?
В детстве смотря фантастические фильмы мечтал создать программу с помощью которой мог бы управлять компьютером с помощью голоса. В данном видео пошагово пишем голосового помощника на языке Python c помощью библиотек
speech recognition
и pyaudio
.https://www.youtube.com/watch?v=ZZVWae8E9K0
YouTube
Голосовой ассистент на Python | Голосовое управление компьютером | Распознавание речи Python
⚡️ Практика Python ⚡️
🎙 Хочешь управлять компьютером с помощью голоса?
В детстве смотря фантастические фильмы мечтал создать программу с помощью которой мог бы управлять компьютером с помощью голоса. В данном видео пошагово пишем голосового помощника на…
🎙 Хочешь управлять компьютером с помощью голоса?
В детстве смотря фантастические фильмы мечтал создать программу с помощью которой мог бы управлять компьютером с помощью голоса. В данном видео пошагово пишем голосового помощника на…
Любопытно
Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
#объяснение
round(x)
округляет значения до ближайшего чётного числа (в документации так и написано). В википедии можно даже найти такое правило. Если вам нужно, чтобы 2.5 округлялось до трёх, то посмотрите в сторону decimal с настройкой
ctx.rounding = ROUND_HALF_UP
. Подробнее.#объяснение
🔥 Pydantic
Работали с JSON? Значит вы явно знакомы с болью, когда превращаешь строку в объект. Нужно писать кучу проверок, переводить в определённый тип, что-то делать с датами?
Все проблемы с типизацией решает Pydantic. Что модуль умеет и как им пользоваться рассказывает автор ролика.
Смотреть | #видео
Работали с JSON? Значит вы явно знакомы с болью, когда превращаешь строку в объект. Нужно писать кучу проверок, переводить в определённый тип, что-то делать с датами?
Все проблемы с типизацией решает Pydantic. Что модуль умеет и как им пользоваться рассказывает автор ролика.
Смотреть | #видео
YouTube
Pydantic — умопомрачительная валидация данных на Python! JSON + Pydantic = ❤️
Мой курс «Хардкорная веб-разработка» — https://course.to.digital
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Сказать спасибо за это видео можно здесь — https://boosty.to/digitalize.team…
Книжный клуб Ботаним!, где мы читаем хорошие ИТ-книги: https://botanim.to.digital/
Telegram: https://t0digital.t.me
Сказать спасибо за это видео можно здесь — https://boosty.to/digitalize.team…
Строки на несколько строк
Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её содержимое в полном порядке. В таком случае у нас есть три варианта:
· Использовать косую черту (/). Тогда мы переносим выражение на новую строку и ни о чем не заботимся.
· Использовать скобки. Смотрите лучше пример. Никаких + использовать не надо, строки сами объединяться.
· Использовать тройные кавычки. Внутри тройных кавычек все останется именно таким, как оно есть.
#теория
Бывают ситуации, когда строку лучше разделить, чтобы она легче читалась, но при этом сохранить её содержимое в полном порядке. В таком случае у нас есть три варианта:
· Использовать косую черту (/). Тогда мы переносим выражение на новую строку и ни о чем не заботимся.
· Использовать скобки. Смотрите лучше пример. Никаких + использовать не надо, строки сами объединяться.
· Использовать тройные кавычки. Внутри тройных кавычек все останется именно таким, как оно есть.
#теория