Как всегда всё великолепно!!! 👍👍👍👍👍 Хочу добавить от себя, что уметь так объяснять это не каждому дано!
@MISTolOZZYamegaru3 ай бұрын
Сергей, Ваши уроки очень высокого уровня! Буду Вас рекомендовать начинающим.
@selfedu_rus3 жыл бұрын
В предыдущей версии видео было некорректно сказано, что элемент добавляется в пустой кортеж оператором +. Это, конечно же, не так, данный оператор объединяет два кортежа и возвращает новый. Всем спасибо за замечания!
@olegkomlev2 жыл бұрын
Скорее уж кортеж задают не круглые скобки, а запятая (перечисление через запятую при отсутствии квадратных или фигурных скобок). Поэтому просто заключить число в скобки недостаточно, нужно поставить запятую, чтобы это стал кортеж. А скобки ( ) нужны ,чтобы элементы кортежа не перепутались с остальной частью выражения. В некоторых случаях их можно не ставить: a=1,2 # кортеж (1,2) b=5, # кортеж из одного элемента (5,) a=(5,), # кортеж, содержащий кортеж из одного элемента Можно в консоли набрать 1,2,3 нажать Enter - увидим, что создался кортеж (1,2,3) А пустой кортеж без скобок не создать: c= # ошибка c=, # ошибка c=() # пустой кортеж Так что чаще всего скобки нужны.
@fufail Жыл бұрын
Блин. Какой приятный голос. И рассказывает дохотчиво. Спасибо!
@andredru42789 ай бұрын
Спасибо. Интересно изменение внутренностей кортежа.
@friend1cat3 жыл бұрын
Спасибо, Сергей!
@Юлия-ч9с6й2 жыл бұрын
Очень интересно и подробно. Спасибо!
@dimk79833 жыл бұрын
Спасибо, полезно очень.
@thebaingames5636 Жыл бұрын
Спасибо большое за курс по python, я стану лучше.
@ОлегД-е5э Жыл бұрын
Альтернативный взгляд на природу Кортежей и их назначение. 1. Разделяю то мнение, что Кортежи - это единственная в языке Python Статически типизированная коллекция объектов, или группа объектов (к изменяемым/неизменяемым типам данных Статическая типизация никакого отношения не имеет, это все о другом). 2. Если упрощенно, то Статическая типизация - это когда при инициализации объекта (Кортежа) происходит: 1) фиксация типа данных (строка, число, список и т. д.), размещаемых в каждом из полей кортежа; 2) фиксация порядка следования полей кортежа с соответствующими типами данных. 3. После инициализации кортежа не могут быть изменены: 1) ни порядок следования полей с данными; 2) ни тип данных в любом из полей. Все. 4. Именно Статическая типизация Кортежей самым логическим образом объясняет все, казалось бы «экзотические», свойства Кортежей, снимает кажущиеся противоречия изменяемые данные в неизменяемом объекте, и устанавливает над Кортежами допустимый набор методов (операций). 5. Только на основе Кортежей можно построить уникальную, для языка Python, конструкцию - набор Неизменяемых данных произвольного уровня вложения (такая конструкция - это набор вложенных друг в друга кортежей, все поля которых заполнены типами данных «число», «строка» или «булевы данные». 6. Только наличие в языке программирования Кортежей позволяет реализовать следующие механизмы: а) метод создания копии объекта изменяемого типа данных с произвольным количеством уровней вложений; б) механизм бесконфликтной передачи данных от объектов с изменяемым типом данных; в) и, собственно, создание многоуровневых вложенных конструкций с полностью неизменяемыми наборами данных (вложенные Кортежи, ключи для Словарей). Экономия памяти и увеличение скорости работы с кортежами - это все побочный результат Статистической типизации. В заключении. Наличие Именованных Кортежей позволяет построить конструкции из п.1)-п.3) для Словарей. Было бы очень хорошо, если бы Сергей нашел возможность или с помощью видео, или через ссылку, разъяснил механизм работы Именованных кортежей. Поскольку, в других источниках информации - полная неразбериха.
@sega65743 жыл бұрын
спасибо дружище, все как обычно круто объясняешь))
@dmitryzagorevskiy5073 жыл бұрын
Сергей, спасибо за видео! Я бы ещё уточнил, что кортеж не может быть ключом словаря, если хотя бы один из элементов (на любом уровне вложенности) этого кортежа изменяемый тип (например список). Или я опять был не очень внимателен. В целом вы делаете очень хорошие видео с очень понятными объяснениями.
@selfedu_rus3 жыл бұрын
Да, спасибо! Нет, этого не говорил. Пусть эта инфа останется в вашем комменте ) В принципе, очевидная вещь.
@ОлегД-е5э2 жыл бұрын
Дмитрий, очень глубокий и крайне полезный комментарий!!! И не соглашусь с Сергеем; то, о чем Вы пишите, вещь совсем не очевидная и обязательно должна быть четко обозначена в видео про кортежи, и не только здесь. На самом деле проблема в отсутствие полного и корректного определения Неизменяемости. Я просмотрел Лутца (5-е издание), на странице 134 такого определения нет! В корректном и полном определении Неизменяемости необходимо явным образом указать на : 1) связь между возможностью изменения элементов объекта и неизменностью ссылки (присваивания) на сам объект; 2) для составного объекта обязательным условием Неизменяемости является условие неизменяемости каждого!!! из его составных компонентов. Тогда мы приходим к пониманию, что числа и строки - это всегда Неизменяемые объекты, списки и словари - всегда Изменяемые, а кортеж - отдельный вид объектов, он может быть как Неизменяемым, так и Изменяемым объектом, и это все зависит от типа Неизменяемости каждого из его элементов "... на любом уровне вложенности". Для тех, у кого Python, первый язык программирования, это будет неочевидно. И получится, как с неправильно сросшимся переломом - сначала неправильно срастили, а потом надо ломать, чтобы срастить заново правильно! Как будто нельзя было сделать правильно с первого раза.
@dmitryzagorevskiy5072 жыл бұрын
@@ОлегД-е5эОлег, вы предложили очень хорошее определение. Я бы рекомендовал сделать его отдельным комментарием, это будет достаточно полезно для других пользователей.
@nataljamasharskih15142 жыл бұрын
Спасибо, очень понятно объясняете.
@daryap24392 жыл бұрын
Очень крутой урок! Спасибо!
@СергейСмирнов-ь8у3 жыл бұрын
Спасибо!👍
@gayratsaidakhmedov545111 ай бұрын
спасибо
@jamjam3337 Жыл бұрын
спасибо!👏👍
@nik01aich2 жыл бұрын
Нужно еще бы объяснить почему меняется ссылка на Bool, но не меняется для списка. Потому что Bool, как и Int, Float и т.д. неизменяемые типы и при "изменениии" создается новый объект, а как следствие меняется ссылка
@AndrewMakarskiy11 ай бұрын
Учитель от бога. Отличные материалы для самостоятельного изучения! Только вот английский надо подтянуть, Сергей. Не тапл (tuple) а тьюпл, не кей (key) а ки и т.д.
@ЗаурФазулджанов7 ай бұрын
голос приятный
@Mika-yq5nr10 ай бұрын
2 года прошло, но в 16:45. Что если при добавлении в список элементов, произойдет перевыделение памяти для списка в другом участке памяти?
@selfedu_rus10 ай бұрын
не понял вопроса, но думаю, его лучше в ТГ-канал по Python задать
@light803210 ай бұрын
При создании списка (как и для vector в c++) выделяется память больше необходимого, чтобы при добавлении новых элементов перевыделение памяти под них происходило реже. Но все-таки в случае переполнения памяти под список - память должна расширяться. В лучшем случае, если в том же месте, после списка, остался неиспользованный участок памяти, память под список расширяется на месте, т.е. ссылка на список не меняется. В худшем случае, программа должна найти свободный участок памяти, удовлетворяющий необходимым нам размерам списка и перезаписать список уже в тот участок. В этом случае ссылка списка изменится. Так, я по крайней мере знаю, может и ошибаюсь, устроено в C++ с vector и другими коллекциями и string. Меня интересует, если ссылки в кортеже не меняются, то как он будет реагировать на переполнение (и на возможно следствии изменения ссылки) одного из его изменяемых элементов. Весь кортеж перезапишется? Вопрос не из-за "блеснуть умом", а потому, что я сначала подумал, что любой кортеж можно использовать как ключ в словаре. Но в комментариях прочитал, что кортежи, к-ые содержат изменяемые элементы, не могут быть ключами. В любом случае, спасибо за обратную связь
@ostrov113 жыл бұрын
пайтон это просто
@Kvas00k7 ай бұрын
Не подскажите как ввести с Клавиатуры кортеж содержащий несколько числовых кортежей, через какую функцию ! Все беребрал не получается😢
@selfedu_rus7 ай бұрын
в ТГ-канале по Python спросите, вам там кучу вариантов накидают )
@ibrahimoglu3 жыл бұрын
👍
@dubinin_s3 жыл бұрын
Подскажите, tuple.index(значение[, start[, stop]]) - start и stop в квадратных скобках - это такой метод записи необязательных параметров в документации? Я правильно понимаю, что если параметры отделяются квадратными скобками, то тот, который внутри скобок, необязателен после указания параметра, который вне скобок? И, соответственно, если где-то встретится такое - (значение[, start, stop]), это будет означать, что start и stop не обязательны, но если указал start, то будь добр укажи и stop, иначе шайтан интерпретатор будет сильно ругаться?
@selfedu_rus3 жыл бұрын
да, верно
@dubinin_s3 жыл бұрын
@@selfedu_rus спасибо
@Youtubbber Жыл бұрын
Если указать Старт, то указывать Стоп не обязательно.
@lopytga5 ай бұрын
Нормально питончик места кушает в оперативе
@dubinin_s3 жыл бұрын
А ещё не известна примерная дата появления практических заданий?
@selfedu_rus3 жыл бұрын
где-то через неделю
@SuperPrimus3 жыл бұрын
Не пойму один момент. Кортеж - это неизменяемый тип. Но конструкция a = a + (1, ) говорит о том, что кортеж "a" все же можно менять, раз мы добавили в него элемент. И если кортеж "a" будет использоваться как ключ словаря, то операция a = a + (1, ) изменит этот ключ .Поясните мне, где я заблуждаюсь
@selfedu_rus3 жыл бұрын
конструкция a = a + (1, ) создает новый кортеж с доплнительным элементом 1, прежний будет удален сборщиком мусора
@SuperPrimus3 жыл бұрын
@@selfedu_rus Спасибо за оперативный ответ. Только я не понял, что будет с кортежем-ключом словаря, если сборщик мусора его удалит после создания нового кортежа.
@selfedu_rus3 жыл бұрын
@@SuperPrimus если прежний кортеж используется, то не удалится
@SuperPrimus3 жыл бұрын
@@selfedu_rus но мы потеряем ссылку на прежний кортеж, переопределив переменную "а"
@selfedu_rus3 жыл бұрын
@@SuperPrimus останется ссылка от ключа словаря - это тоже ссылка на этот же (прежний) кортеж