Что выведет этот скрипт?
Anonymous Quiz
13%
it is the end see you soon
23%
it is the end almost see you soon
23%
it is the end see you soon see you soon
4%
it is the end almost
37%
Ошибка
👍8
Инструкция del (от англ. delete), как можно понять из названия, нужна чтобы что-то удалять, а именно имена переменных, атрибуты объектов, элементы списков и ключи словарей.
1. Удаление элемента из списка по индексу:
Также можно удалять по срезам. Пример: удаление первых двух элементов:
Удаление последних n элементов:
Удаление элементов с четными индексами:
Удаление произвольного среза:
Не путайте
2. Удаление ключа из словаря. Просто:
А вот строки, байты и сеты del не поддерживают.
3. Удаление атрибута объекта.
Примечание: можно через del удалить метод у самого класса (
4. Что значит удалить имя переменной? Это просто значит, что надо отвязать имя от объекта (при этом если на объект никто более не ссылается, то он будет освобожден сборщиком мусора), а само имя станет свободно. При попытке доступа к этому имени после удаления будет
Здесь кроется один нюанс. Если переменная была внутри функции помечена, как
Чтобы реально удалить глобальную переменную, можно сделать так:
В пунктах 1, 2, 3 в качестве имен могут фигурировать выражения и ссылки, так как операции идут над содержимым объектов, а в пункте 4 должно быть строго формальное имя удаляемого объекта.
@pro_python_code
1. Удаление элемента из списка по индексу:
>>> x = [1, 2, 3, 4, 5]
>>> del x[2]
>>> x
[1, 2, 4, 5]Также можно удалять по срезам. Пример: удаление первых двух элементов:
>>> x = [1, 2, 3, 4, 5]
>>> del x[:2]
>>> x
[3, 4, 5]Удаление последних n элементов:
del x[n:].Удаление элементов с четными индексами:
del x[::2], нечетными: del x[1::2].Удаление произвольного среза:
del x[i:j:k].Не путайте
del x[2] и x.remove(2). Первый удаляет по индексу (нумерация с 0), а второй по значению, то есть находит в списке первую двойку и удаляет ее.2. Удаление ключа из словаря. Просто:
>>> d = {"foo": 5, "bar": 8}
>>> del d["foo"]
>>> d
{'bar': 8}
А вот строки, байты и сеты del не поддерживают.
3. Удаление атрибута объекта.
class Foo:
def __init__(self):
self.var = 10
f = Foo()
del f.var
print(f.var) # ошибка! Примечание: можно через del удалить метод у самого класса (
del Foo.method), но нельзя удалить метод у экземпляра класса (del Foo().method - AttributeError).4. Что значит удалить имя переменной? Это просто значит, что надо отвязать имя от объекта (при этом если на объект никто более не ссылается, то он будет освобожден сборщиком мусора), а само имя станет свободно. При попытке доступа к этому имени после удаления будет
NameError, пока ему снова не будет что-то присвоено.>>> a = 5
>>> del a
>>> a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'a' is not definedЗдесь кроется один нюанс. Если переменная была внутри функции помечена, как
global, то после ее удаления глобальная переменная никуда не денется, а имя освободится лишь в зоне видимости функции. Причем если мы снова присвоим ей значение, то она опять окажется глобальной, т.е. del не очищает информацию о global!g = 100
def f():
global g
g = 200
del g # g останется вне фукции
g = 300 # таже самая глобальная g
f()
print(g) # 300Чтобы реально удалить глобальную переменную, можно сделать так:
del globals()['g'].В пунктах 1, 2, 3 в качестве имен могут фигурировать выражения и ссылки, так как операции идут над содержимым объектов, а в пункте 4 должно быть строго формальное имя удаляемого объекта.
>>> x = [1, 2, 3]
>>> y = x
>>> del y # удаляет именно y, но x остается@pro_python_code
👍21❤2
✅ Список полезных ресурсов для Python разработчика
@pythonl - продвинутый Python
@ai_machinelearning_big_data - машинное обучение
@data_analysis_ml - анализ данных на Python
@python_testit - тесты задачи на Python
@pythonlbooks - книги на Python
@Django_pythonl - чат
@Pythonl_django - django
@python_djangojobs - python django вакансии
@programming_books_it - книги программистов
@Golang_google - Golang
@itchannels_telegram - полный список ресурсов
@pythonl - продвинутый Python
@ai_machinelearning_big_data - машинное обучение
@data_analysis_ml - анализ данных на Python
@python_testit - тесты задачи на Python
@pythonlbooks - книги на Python
@Django_pythonl - чат
@Pythonl_django - django
@python_djangojobs - python django вакансии
@programming_books_it - книги программистов
@Golang_google - Golang
@itchannels_telegram - полный список ресурсов
👍9👎1
🗣️ Решаем задачу перевода русской речи в текст с помощью Python и библиотеки Vosk
https://proglib.io/p/reshaem-zadachu-perevoda-russkoy-rechi-v-tekst-s-pomoshchyu-python-i-biblioteki-vosk-2022-06-30
@pro_python_code
https://proglib.io/p/reshaem-zadachu-perevoda-russkoy-rechi-v-tekst-s-pomoshchyu-python-i-biblioteki-vosk-2022-06-30
@pro_python_code
Библиотека программиста
🗣️ Решаем задачу перевода русской речи в текст с помощью Python и библиотеки Vosk
Конвертируем русскую речь в текст оффлайн (транскрибация) с помощью Python и библиотеки Vosk с её ML-моделями.
👍7
📍 Полезные Python модули, которыми мало кто пользуется
В данной статье мы будем работать с малоизвестными методами и модулями, которые могут улучшить эффективность и внешний вид кода.
Читать дальше
@pro_python_code
В данной статье мы будем работать с малоизвестными методами и модулями, которые могут улучшить эффективность и внешний вид кода.
Читать дальше
@pro_python_code
👍8🥰2
Как легко и надежно реализовать модульные тесты на Python
Что такое тесты
Тестирование кода — простой и интуитивно понятный процесс. Он заключается в создании и запуске тестов параллельно с разработкой основного кода. Это позволяет убедиться в том, что написанный код работает должным образом. Каждый так или иначе тестирует код. Одни это делают лучше, другие — хуже.
Большинство разработчиков запускают быстрые тесты в терминале или используют в качестве тестировщика сочетание assert-операторов и print-инструкций. Однако есть более эффективные способы. Поговорим о них позже, а сначала обсудим, почему так важно делать тесты.
Читать дальше
@pro_python_code
Что такое тесты
Тестирование кода — простой и интуитивно понятный процесс. Он заключается в создании и запуске тестов параллельно с разработкой основного кода. Это позволяет убедиться в том, что написанный код работает должным образом. Каждый так или иначе тестирует код. Одни это делают лучше, другие — хуже.
Большинство разработчиков запускают быстрые тесты в терминале или используют в качестве тестировщика сочетание assert-операторов и print-инструкций. Однако есть более эффективные способы. Поговорим о них позже, а сначала обсудим, почему так важно делать тесты.
Читать дальше
@pro_python_code
👍10
Capitalize Column Names in a Dataframe
https://www.pythonforbeginners.com/basics/capitalize-column-names-in-a-dataframe
@pro_python_code
https://www.pythonforbeginners.com/basics/capitalize-column-names-in-a-dataframe
@pro_python_code
👍7
🐍🧩 Обработка вложенных списков и матриц в Python: 5 задач с решениями для совершенствования навыков
https://proglib.io/p/obrabotka-vlozhennyh-spiskov-i-matric-v-python-5-zadach-s-resheniyami-dlya-sovershenstvovaniya-navykov-2022-07-04
@pro_python_code
https://proglib.io/p/obrabotka-vlozhennyh-spiskov-i-matric-v-python-5-zadach-s-resheniyami-dlya-sovershenstvovaniya-navykov-2022-07-04
@pro_python_code
Библиотека программиста
🐍🧩 Обработка вложенных списков и матриц в Python: 5 задач с решениями для совершенствования навыков
Вычисляем площадь незакрашенного холста, определяем максимальный элемент в области, заполняем массив по диагоналям, складываем две матрицы и находим нужную строку в треугольнике Паскаля.
👍9
Forwarded from Анализ данных (Data analysis)
💡10 фич для ускорения анализа данных в Python
Советы и рекомендации, особенно в программировании, могут быть очень полезны. Маленький шоткат, аддон или хак может сэкономить кучу времени и серьёзно увеличить производительность. Я собрала свои самые любимые и сделала из них эту статью. Какие-то из советов ниже уже известны многим, а какие-то появились совсем недавно. Так или иначе, я уверена, они точно не будут лишними, когда вы в очередной раз приступите к проекту по анализу данных.
Читать дальше
@data_analysis_ml
Советы и рекомендации, особенно в программировании, могут быть очень полезны. Маленький шоткат, аддон или хак может сэкономить кучу времени и серьёзно увеличить производительность. Я собрала свои самые любимые и сделала из них эту статью. Какие-то из советов ниже уже известны многим, а какие-то появились совсем недавно. Так или иначе, я уверена, они точно не будут лишними, когда вы в очередной раз приступите к проекту по анализу данных.
Читать дальше
@data_analysis_ml
👍11
Colossal-AI: унифицированная система глубокого обучения для эпохи больших моделей
https://github.com/hpcaitech/ColossalAI
@pro_python_code
https://github.com/hpcaitech/ColossalAI
@pro_python_code
👍4
This media is not supported in your browser
VIEW IN TELEGRAM
🔎 Sherlock
Алгоритм, написанный на Python проверяющий наличие учётной записи в социальных сетях по заданному никнейму пользователя
Алгоритм быстро проверяет множество сайтов, что позволяет, не теряя много времени, найти аккаунты под одноимённой регистрацией
Установка: git clone https://github.com/sherlock-project/sherlock.git
Код
Список соцсетей
@pro_python_code
Алгоритм, написанный на Python проверяющий наличие учётной записи в социальных сетях по заданному никнейму пользователя
Алгоритм быстро проверяет множество сайтов, что позволяет, не теряя много времени, найти аккаунты под одноимённой регистрацией
Установка: git clone https://github.com/sherlock-project/sherlock.git
Код
Список соцсетей
@pro_python_code
👍14
При работе в Kivy с потоками (threading) вы должны иметь в виду, что все изменения в графическом интерфейсе должны делаться из главного потока. Да, и это не смотря даже на GIL! Дело в том, что контекст OpenGL очень не любит, когда его трогают из чужого потока, что приводит к случайным и иногда сложно уловимым визуальным глюкам (см. прикрепленное фото).
Как это сделать? Воспользоваться декоратором
Пример использования из Durak GUI. Метод
Как это сделать? Воспользоваться декоратором
mainthread, который поставит при вызове оригинальной функции поставит ее выполнение в следующий тик главного цикла приложения в главном потоке. Пример использования из Durak GUI. Метод
self.on_found_peer вызывается из другого вспомогательного потока, но он меняет интерфейс, поэтому должен быть снабжен декоратором mainthread:from kivy.clock import mainthread
class DurakFloatApp(App):
...
@mainthread
def on_found_peer(self, addr, peer_id):
print(f'Найден соперник {peer_id}@{addr}')
# делать что-то с GUI!
...
self.discovery = DiscoveryProtocol(self.my_pid, PORT_NO)
#
self.discovery.run_in_background(self.on_found_peer)GitHub
GitHub - tirinox/durakmq: LAN Durak Card Game
LAN Durak Card Game. Contribute to tirinox/durakmq development by creating an account on GitHub.
👍7
Forwarded from Kali Linux
☠️ Security Scripts
Набор скриптов для защиты и нападения для обучения изучающих информационную безопасность.
⚠️ Информация предоставлена исключительно с целью ознакомления. И побуждает обратить внимание на проблемы в безопасности.
#python #hack #pentest #redteam #blueteam
⚙️ GitHub
@linuxkalii
Набор скриптов для защиты и нападения для обучения изучающих информационную безопасность.
⚠️ Информация предоставлена исключительно с целью ознакомления. И побуждает обратить внимание на проблемы в безопасности.
#python #hack #pentest #redteam #blueteam
⚙️ GitHub
@linuxkalii
👍6
🚀 10 идиоматических приемов для эффективного программирования на Python
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и тех же функциональностей. Однако в большинстве случаев предпочтительно использовать реализации, присущие исключительно Python, характерной особенностью которых являются чистота и краткость кода.
Программирование на Python или любом другом языке — это не высшая математика, здесь многое зависит от степени сформированности ваших навыков. Если вы целенаправленно начнете писатькод в стиле Python (иначе говоря, питонический), то эти техники вскоре пополнят ваш набор инструментов, и постепенно их использование в проектах станет самым привычным делом. Рассмотрим ряд таких простых приемов, которые, я надеюсь, окажутся вам полезны.
Читать дальше
@pro_python_code
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и тех же функциональностей. Однако в большинстве случаев предпочтительно использовать реализации, присущие исключительно Python, характерной особенностью которых являются чистота и краткость кода.
Программирование на Python или любом другом языке — это не высшая математика, здесь многое зависит от степени сформированности ваших навыков. Если вы целенаправленно начнете писатькод в стиле Python (иначе говоря, питонический), то эти техники вскоре пополнят ваш набор инструментов, и постепенно их использование в проектах станет самым привычным делом. Рассмотрим ряд таких простых приемов, которые, я надеюсь, окажутся вам полезны.
Читать дальше
@pro_python_code
👍9
Enumerate
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.