👍3👎1
Синтаксис «лямбды» (согласно
𝚕𝚊𝚖𝚋𝚍𝚊_𝚎𝚡𝚙𝚛 ::= "𝚕𝚊𝚖𝚋𝚍𝚊" [𝚙𝚊𝚛𝚊𝚖𝚎𝚝𝚎𝚛_𝚕𝚒𝚜𝚝] ":" 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗
В данном случае 𝚕𝚊𝚖𝚋𝚍𝚊−функция принимает два параметра: 𝚊 (обязательный) и 𝚋 (со значением по умолчанию 𝟻). При вызове 𝚊𝚍𝚍(𝟹) передается только один аргумент, который присваивается параметру 𝚊. Параметр 𝚋 использует значение по умолчанию, равное 𝟻.
Таким образом, выполняется операция: 𝟹 + 𝟻 = 𝟾.
👍4👎1
👍3👎1
«Переменная — это ссылка на объект в памяти».
Когда мы присваиваем переменной новое значение, переменная начинает ссылаться на другой объект.
В данном коде:
𝟷. Строка 𝟷: 𝚊 = 𝚃𝚛𝚞𝚎
Переменная 𝚊 ссылается на объект 𝚃𝚛𝚞𝚎 в памяти. Функция 𝚒𝚍() возвращает уникальный идентификатор объекта 𝚃𝚛𝚞𝚎.
𝟸. Строка 𝟹: 𝚊 = 𝙵𝚊𝚕𝚜𝚎
Переменная 𝚊 теперь ссылается на объект 𝙵𝚊𝚕𝚜𝚎 в памяти. Это совершенно другой объект, поэтому 𝚒𝚍() возвращает другой идентификатор.
Ключевой момент: 𝚃𝚛𝚞𝚎 и 𝙵𝚊𝚕𝚜𝚎 — это отдельные объекты в памяти. Когда мы изменяем значение переменной с 𝚃𝚛𝚞𝚎 на 𝙵𝚊𝚕𝚜𝚎, мы не изменяем сам объект 𝚃𝚛𝚞𝚎, а заставляем переменную 𝚊 ссылаться на другой объект — 𝙵𝚊𝚕𝚜𝚎.
Поэтому два вызова 𝚙𝚛𝚒𝚗𝚝(𝚒𝚍(𝚊)) покажут разные значения, так как переменная 𝚊 ссылается на разные объекты в памяти.
Это демонстрирует важную особенность: переменные не «содержат» значения, а являются ссылками на объекты. При изменении значения переменной меняется объект, на который она ссылается, а не содержимое самого объекта.
❤3👍2👎1
👍4👎2
Последовательность выполнения:
Из
«Операторы присваивания используются для (повторного) связывания имен со значениями и для изменения атрибутов или элементов изменяемых объектов»
При присваивании происходит связывание имени с объектом, а не копирование значения. Поэтому изменение значения одной переменной не влияет на другие переменные, которые ссылаются на тот же объект.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎1
🧩 Какой символ РАЗРЕШЕН в именах переменных?
Anonymous Quiz
3%
- (дефис)
1%
# (решетка)
82%
_ (нижнее подчеркивание)
14%
Все разрешаются
👍4👎1
«Имена переменных могут содержать только следующие символы:
Поэтому из трех предложенных символов допустим только _ (𝚞𝚗𝚍𝚎𝚛𝚜𝚌𝚘𝚛𝚎).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2👎1
👍2👎1
— Начинается с буквы;
— Содержит только буквы, цифры и подчеркивания;
— Соответствует всем правилам синтаксиса.
— Начинается с подчеркивания (что допустимо);
— Содержит только буквы, цифры и подчеркивания;
— Не является ключевым словом.
— Содержит дефис (-), который не является допустимым символом в именах переменных;
— Дефис интерпретируется как оператор вычитания, что приводит к синтаксической ошибке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3👎1
👍2👎1
− 𝚖 = 𝟸
− 𝚗 = 𝟸𝟻𝟼 (переменная не используется)
− 𝚊 = 𝚖 + 𝟹 → 𝚊 = 𝟸 + 𝟹 = 𝟻
− 𝚋 = 𝚒𝚗𝚝('𝟻') → 𝚋 = 𝟻
− 𝚙𝚛𝚒𝚗𝚝(𝚊 𝚒𝚜 𝚋)
Ключевой момент заключается в том, как Python обрабатывает небольшие целые числа.
Оператор 𝚒𝚜 проверяет идентичность объектов: ссылаются ли две переменные на один и тот же объект в памяти. В данном случае обе переменные 𝚊 и 𝚋 имеют значение 𝟻.
Python оптимизирует работу с небольшими целыми числами от −𝟻 до 𝟸𝟻𝟼 включительно. Эти числа кэшируются и переиспользуются − все переменные с одинаковым значением в этом диапазоне ссылаются на один и тот же объект в памяти.
Поскольку значение 𝟻 находится в диапазоне кэшируемых чисел (−𝟻 до 𝟸𝟻𝟼), переменные 𝚊 и 𝚋 ссылаются на один и тот же объект в памяти. Поэтому оператор 𝚒𝚜 возвращает 𝚃𝚛𝚞𝚎.
Если бы мы использовали числа вне этого диапазона (например, 𝟹𝟶𝟶), то оператор 𝚒𝚜 вернул бы 𝙵𝚊𝚕𝚜𝚎, так как Python создавал бы отдельные объекты для каждого значения.
👍2👎1
👍1👎1
Согласно
𝚏𝚘𝚛_𝚜𝚝𝚖𝚝 ::= "𝚏𝚘𝚛" 𝚝𝚊𝚛𝚐𝚎𝚝_𝚕𝚒𝚜𝚝 "𝚒𝚗" 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗_𝚕𝚒𝚜𝚝 ":" 𝚜𝚞𝚒𝚝𝚎
В данном случае:
− 𝚝𝚊𝚛𝚐𝚎𝚝_𝚕𝚒𝚜𝚝 — это переменная 𝚒
− 𝚎𝚡𝚙𝚛𝚎𝚜𝚜𝚒𝚘𝚗_𝚕𝚒𝚜𝚝 — это кортеж (𝟺,𝟹,𝟸,𝟷,𝟶)
− 𝚜𝚞𝚒𝚝𝚎 — это блок с оператором 𝚙𝚛𝚒𝚗𝚝
Функция 𝚙𝚛𝚒𝚗𝚝() выводит значение 𝚒 и параметр 𝚎𝚗𝚍=" " означает, что после каждого вывода будет добавлен пробел, а не символ новой строки.
Параметр 𝚎𝚗𝚍 в функции 𝚙𝚛𝚒𝚗𝚝() позволяет указать, что должно выводиться после основного содержимого. По умолчанию 𝚎𝚗𝚍="\𝚗", что означает переход на новую строку.
Таким образом, код выведет: 𝟺 𝟹 𝟸 𝟷 𝟶 (с пробелом после последнего числа).
👍1👎1
🧩 Что делает value_counts(bins=buckets)?
Anonymous Quiz
68%
Подсчитывает значения в интервалах
20%
Создает гистограмму с интервалами
4%
Сортирует значения по возрастанию
8%
Так с pd.Series обращаться нельзя
👍3💩1
В данном коде:
− 𝚍𝚏 = 𝚙𝚍.𝚂𝚎𝚛𝚒𝚎𝚜(𝚗𝚙.𝚛𝚊𝚗𝚍𝚘𝚖.𝚛𝚊𝚗𝚍𝚒𝚗𝚝(𝟶, 𝟷𝟶𝟶𝟶, 𝟻𝟶)) создает 𝚂𝚎𝚛𝚒𝚎𝚜 из 𝟻𝟶 случайных целых чисел от 𝟶 до 𝟿𝟿𝟿
− 𝚋𝚞𝚌𝚔𝚎𝚝𝚜 = 𝚕𝚒𝚜𝚝(𝚛𝚊𝚗𝚐𝚎(𝟶, 𝟷𝟶𝟶𝟷, 𝟸𝟶𝟶)) создает список границ интервалов: [𝟶, 𝟸𝟶𝟶, 𝟺𝟶𝟶, 𝟼𝟶𝟶, 𝟾𝟶𝟶, 𝟷𝟶𝟶𝟶]
− 𝚍𝚏.𝚟𝚊𝚕𝚞𝚎_𝚌𝚘𝚞𝚗𝚝𝚜(𝚋𝚒𝚗𝚜=𝚋𝚞𝚌𝚔𝚎𝚝𝚜) группирует значения в интервалы и подсчитывает количество значений в каждом
Согласно
− 𝚒𝚗𝚝: количество равных интервалов
− 𝚕𝚒𝚜𝚝: границы интервалов
− 𝙸𝚗𝚝𝚎𝚛𝚟𝚊𝚕𝙸𝚗𝚍𝚎𝚡: конкретные интервалы
Когда 𝚋𝚒𝚗𝚜 является списком границ, 𝚙𝚊𝚗𝚍𝚊𝚜 создает интервалы вида:
− (𝟶, 𝟸𝟶𝟶] − значения больше 𝟶 и меньше или равные 𝟸𝟶𝟶
− (𝟸𝟶𝟶, 𝟺𝟶𝟶] − значения больше 𝟸𝟶𝟶 и меньше или равные 𝟺𝟶𝟶
− (𝟺𝟶𝟶, 𝟼𝟶𝟶] − значения больше 𝟺𝟶𝟶 и меньше или равные 𝟼𝟶𝟶
− (𝟼𝟶𝟶, 𝟾𝟶𝟶] − значения больше 𝟼𝟶𝟶 и меньше или равныея 𝟾𝟶𝟶
− (𝟾𝟶𝟶, 𝟷𝟶𝟶𝟶] − значения больше 𝟾𝟶𝟶 и меньше или равные 𝟷𝟶𝟶𝟶
Результат будет содержать количество значений в каждом интервале, отсортированных по убыванию частоты.
❤3👍1👎1