Just Python
10.2K subscribers
4.39K photos
11 videos
4.38K links
🐍Простое изучение Python.

Ссылка: @Portal_v_IT

Сотрудничество: @oleginc, @tatiana_inc

Канал на бирже: telega.in/c/justpython_it

РКН: clck.ru/3MnbSc
Download Telegram
Строки и обратная косая черта (ч.1)

В обычной строке python обратная косая черта используется для экранирования символов, которые могут иметь особое значение (например, одинарная кавычка, двойная кавычка и сама обратная косая черта).

#theory // Just Python & Max
Строки и обратная косая черта (ч.2)

В необработанном строковом литерале (на что указывает префикс r) обратная косая черта передается как есть вместе с поведением экранирования следующего символа.

Это означает, что когда анализатор обнаруживает обратную косую черту в необработанной строке, он ожидает, что за ней последует другой символ. И в нашем случае (print(r"\")) обратная косая черта экранировала завершающую кавычку, оставляя анализатор без завершающей кавычки (отсюда SyntaxError). Вот почему обратная косая черта не работает в конце необработанной строки.

#theory // Just Python & Max
Не узел!

Приоритет оператора влияет на то, как вычисляется выражение, и == operator имеет более высокий приоритет, чем not operator в Python.

Таким образом, not x == y эквивалентноnot (x == y), что эквивалентно not (True == False) окончательной оценке True.

Но x == not y вызывает SyntaxError вопрос, потому что его можно считать эквивалентным, (x == not) y а не x == (not y) тем, что вы могли ожидать на первый взгляд.

Анализатор ожидал, что not токен будет частью not in оператора (потому что оба оператора == и not in имеют одинаковый приоритет), но после того, как не смог найти in токен, следующий за not токеном, он выдает SyntaxError.

#theory // Just Python & Max
Половина строк в тройных кавычках

Python поддерживает неявную конкатенацию строковых литералов.

''' и """ также являются разделителями строк в Python, которые вызывают ошибку SyntaxError, потому что интерпретатор Python ожидал, что в качестве разделителя будет заключена тройная кавычка при сканировании текущего строкового литерала в тройных кавычках.

#theory // Just Python & Max
Что не так с логическими значениями? (ч.1)

Изначально в Python не было bool типа (люди использовали 0 для false и ненулевое значение, такое как 1 для true). True, False и bool тип был добавлен в версиях 2.x, но для обратной совместимости True и False нельзя было сделать константами. Они просто были встроенными переменными, и их можно было переназначить.

#theory // Just Python & Max
Что не так с логическими значениями? (ч.2)

bool является подклассом int в Python. И, таким образом, True и False являются экземплярами int. Целочисленное значение True равно 1, а значение из False равно 0.

#theory // Just Python & Max
Что не так с логическими значениями? (ч.3)

Python 3 был обратно несовместим, проблема была наконец исправлена, и, таким образом, последний фрагмент не будет работать с Python 3.x!

#theory // Just Python & Max
Атрибуты класса и атрибуты экземпляра (ч.1)

Переменные класса и переменные в экземплярах класса внутренне обрабатываются как словари объекта класса. Если имя переменной не найдено в словаре текущего класса, выполняется поиск по нему в родительских классах.

#theory // Just Python & Max
Атрибуты класса и атрибуты экземпляра (ч.2)

+= Оператор изменяет изменяемый объект на месте, не создавая новый объект. Таким образом, изменение атрибута одного экземпляра влияет на другие экземпляры, а также на атрибут class.

#theory // Just Python & Max
Лови список полезных IT каналов в Max 🇷🇺

Архиватор – крупная база слитых айти курсов по программированию

Сливакер – отобранный архив полезных курсов для программистов

Полка Разработчика – сборник книг для изучения Python, JS, Java и других языков программирования;

Записки Фронтендера -- опытный Frontend-разработчик собрал все самое основное

Записки Бэкендера -- а тут опытный Backend-разработчик подбирает самое полезное

Записки Питониста -- здесь думаю итак понятно, питонисты заходите

Code Learning – ютуб в мире программистов, сборник видео для обучения

Графика и Дизайн – сборник полезных курсов и видео для полного погружения в дизайн

Нейролента – публикуем самое актуальное из мира нейросетей

Windows Community -- все что связанно с Windows

DevHumor – все что выше, без юмора не понять

Находки Программиста – подбираем все самое нужно для программистов
Please open Telegram to view this post
VIEW IN TELEGRAM
Уступая от ... return! (ч.1)

Куда "wtf" делся? Это из-за какого-то особого эффекта yield from?

Начиная с Python 3.3, стало возможным использовать return инструкцию со значениями внутри генераторов (см. PEP380). В официальных документах говорится, что,
"... return expr в генераторе возникают причины StopIteration(expr), которые возникают при выходе из генератора".

#theory // Just Python & Max
Уступая от ... return! (ч.2)

В случае с some_func(3), StopIteration возникает в начале из-за return заявления. StopIteration Исключение автоматически перехватывается внутри list(...) оболочки и for цикла. Следовательно, два приведенных выше фрагмента приводят к пустому списку.

Чтобы получить ["wtf"] от генератора some_func, нам нужно перехватить StopIteration исключение,

#theory // Just Python & Max