Что выведет этот скрипт?
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%
Ошибка
Инструкция 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
✅ Список полезных ресурсов для 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 - полный список ресурсов
🗣️ Решаем задачу перевода русской речи в текст с помощью 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-моделями.
📍 Полезные Python модули, которыми мало кто пользуется
В данной статье мы будем работать с малоизвестными методами и модулями, которые могут улучшить эффективность и внешний вид кода.
Читать дальше
@pro_python_code
В данной статье мы будем работать с малоизвестными методами и модулями, которые могут улучшить эффективность и внешний вид кода.
Читать дальше
@pro_python_code
Как легко и надежно реализовать модульные тесты на Python
Что такое тесты
Тестирование кода — простой и интуитивно понятный процесс. Он заключается в создании и запуске тестов параллельно с разработкой основного кода. Это позволяет убедиться в том, что написанный код работает должным образом. Каждый так или иначе тестирует код. Одни это делают лучше, другие — хуже.
Большинство разработчиков запускают быстрые тесты в терминале или используют в качестве тестировщика сочетание assert-операторов и print-инструкций. Однако есть более эффективные способы. Поговорим о них позже, а сначала обсудим, почему так важно делать тесты.
Читать дальше
@pro_python_code
Что такое тесты
Тестирование кода — простой и интуитивно понятный процесс. Он заключается в создании и запуске тестов параллельно с разработкой основного кода. Это позволяет убедиться в том, что написанный код работает должным образом. Каждый так или иначе тестирует код. Одни это делают лучше, другие — хуже.
Большинство разработчиков запускают быстрые тесты в терминале или используют в качестве тестировщика сочетание assert-операторов и print-инструкций. Однако есть более эффективные способы. Поговорим о них позже, а сначала обсудим, почему так важно делать тесты.
Читать дальше
@pro_python_code
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
🐍🧩 Обработка вложенных списков и матриц в 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 задач с решениями для совершенствования навыков
Вычисляем площадь незакрашенного холста, определяем максимальный элемент в области, заполняем массив по диагоналям, складываем две матрицы и находим нужную строку в треугольнике Паскаля.
Forwarded from Анализ данных (Data analysis)
💡10 фич для ускорения анализа данных в Python
Советы и рекомендации, особенно в программировании, могут быть очень полезны. Маленький шоткат, аддон или хак может сэкономить кучу времени и серьёзно увеличить производительность. Я собрала свои самые любимые и сделала из них эту статью. Какие-то из советов ниже уже известны многим, а какие-то появились совсем недавно. Так или иначе, я уверена, они точно не будут лишними, когда вы в очередной раз приступите к проекту по анализу данных.
Читать дальше
@data_analysis_ml
Советы и рекомендации, особенно в программировании, могут быть очень полезны. Маленький шоткат, аддон или хак может сэкономить кучу времени и серьёзно увеличить производительность. Я собрала свои самые любимые и сделала из них эту статью. Какие-то из советов ниже уже известны многим, а какие-то появились совсем недавно. Так или иначе, я уверена, они точно не будут лишними, когда вы в очередной раз приступите к проекту по анализу данных.
Читать дальше
@data_analysis_ml
Colossal-AI: унифицированная система глубокого обучения для эпохи больших моделей
https://github.com/hpcaitech/ColossalAI
@pro_python_code
https://github.com/hpcaitech/ColossalAI
@pro_python_code
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
При работе в 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.
Forwarded from Kali Linux
🚀 10 идиоматических приемов для эффективного программирования на Python
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и тех же функциональностей. Однако в большинстве случаев предпочтительно использовать реализации, присущие исключительно Python, характерной особенностью которых являются чистота и краткость кода.
Программирование на Python или любом другом языке — это не высшая математика, здесь многое зависит от степени сформированности ваших навыков. Если вы целенаправленно начнете писатькод в стиле Python (иначе говоря, питонический), то эти техники вскоре пополнят ваш набор инструментов, и постепенно их использование в проектах станет самым привычным делом. Рассмотрим ряд таких простых приемов, которые, я надеюсь, окажутся вам полезны.
Читать дальше
@pro_python_code
Программирование само по себе очень увлекательное занятие, а программирование на Python увлекательнее вдвойне, поскольку в данном языке существует много разных способов реализации одних и тех же функциональностей. Однако в большинстве случаев предпочтительно использовать реализации, присущие исключительно Python, характерной особенностью которых являются чистота и краткость кода.
Программирование на Python или любом другом языке — это не высшая математика, здесь многое зависит от степени сформированности ваших навыков. Если вы целенаправленно начнете писатькод в стиле Python (иначе говоря, питонический), то эти техники вскоре пополнят ваш набор инструментов, и постепенно их использование в проектах станет самым привычным делом. Рассмотрим ряд таких простых приемов, которые, я надеюсь, окажутся вам полезны.
Читать дальше
@pro_python_code
Enumerate
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
В традиционных языках программирования вам нужна переменная цикла для перебора различных значений контейнера. В Python это упростили: вы можете получить доступ к переменной цикла вместе со значением итерируемого объекта. Функция enumerate(x) возвращает две итерируемые переменные. Одна из них изменяется в диапазоне от 0 до len(x) - 1, а другая представляет собой элементы x.
Для тех , кто ищет работу или фриланс на Python
@python_djangojobs - наш канал вакансий Python
@python_django_work - чат
@datascienceml_jobs вакансии Machine learning /Python
@Machinelearning_Jobs - чат
@hr_itwork - it вакансии
@python_djangojobs - наш канал вакансий Python
@python_django_work - чат
@datascienceml_jobs вакансии Machine learning /Python
@Machinelearning_Jobs - чат
@hr_itwork - it вакансии