самый частый вопрос: почему при проверке кода: x = 555 y = 111*5 x is y выдает вместо False (как на видео) - True. Скорее всего в различии при запуске кода в сценарном и интерактивном режимах. В примере я использовал интерактивный режим: исполнение строка за строкой, но если использовать сценарный режим, то Python применяет оптимизацию неизменяемых объектов и может объединить их. Почему может? т.к. зависит от: - реализации Python, - версии - контекста (например: - динамически созданные объекты int("555") - объекты в разных блоках кода)
Спасибо за видео-пересказ. Если изучать самостоятельно( + закрепление материала) техническую литературу, то уходит слишком много времени. А тут все "по полочкам". Спасибо❤
да, считая, что видео на очень ограниченный круг, думаю что неплохо зашло. Дилема была такая: разбивать видео на части или выкладывать целиком. В сумме маленькие видео могут дать больше охват, но это тоже не факт. А большое может вообще не стрельнуть. Это так чисто интерес разобраться самому, как работает ютуб.
о! интересно. у меня ежедневно число отписавшихся от 0-25% от количества подписавшихся, не знаю только одни и те же это люди или нет. А то бывает случайнно нажмешь на подписаться, и отписываешься сразу. Хотя, в дни когда 25% это уже случайностью не объяснить:)
Вчера ночью случайно увидела ваше видео в рекомендациях, хотя я всего на всего мастер маникюра, решила ради интереса включить. Я уснула крепким сном 💯😌 теперь знаю кого буду слушать перед сном 🤞🏽 спасибо вам 🙏🏽
Это видео - отличная визитка Вашего канала. Позволю себе критику, немного бы визуал подтянуть (всё впереди). В остальном же - очень хочу продолжить смотреть Ваши видео. И продолжу :)
Вообще ролик прекрасный. Для новичков (и 80% "мидлов") тут масса полезных разъяснений. 👍 однозначно за умение доводить информацию четко, понятно, локанично, без мути
Красавчик. Видео зачет. Наконец то многое стало на свои места и появилось понимание чо именно мне нужно изучать для Data science и примерно в какой последовательности. Кстати, есть ли смысл после твоего видео прочесть эту книгу, или достаточно твоего видео?
спасибо!:) По поводу видео и книги. Те темы которые я взял в видео я постарался расширить, но возможно объяснение автора книги зайдет лучше. Некоторые темы я пропустил, так как они мне показались не раскрыты или в других книгах (именно для меня) описаны лучше. И опять же два человека прочитав одно и тоже в силу своего опыта могут сделать разные выводы, как по глубине, так и по смыслу. Поэтому мои видео ни в коему случае не могут быть заменой чтения, они дают возможность лишь узнать, как понял материал один из читалей (я), что должно (по моему мнению) облегчить и ускорить процесс обучения для других, двигающихся в схожем направлении.
Привет! Спасибо большое! Очень приятно и понятно в целом . Только тяжело понять когда этих окон много и понять что куда и как идёт , надо прям несколько раз перематывать и переслушивать, так как этих слов технических (вроде простых) много в какие-то определённые периоды))
привет. спасибо:) да, согласен, много окон напрягает, я сам когда монтировал пересматривал много раз, при том, что до этого ещё и перечитывал много раз что бы понять, как это нарисовать. Но если убирать их, мне кажется можно забыть, о каких окнах идет речь. вот сейчас мысль пришла, попробовать окна подсвечивать, что бы понимание было какое активное - куда смотреть. Постараюсь учесть в следующих видео при необходимости.
я слышал про MIRO, но не пользовался. сейчас посмотрел видео, что с ней делают, действительно много прикольных возможностей дает - разгул для творчества:) . спасибо за совет. мне кажется я что-то подобное делал, только Figmа использовал и Xmind. вообще сейчас столько программ крутых, когда бы разобраться в них.... спасибо:)
Для себя понял, что плохо воспринимаю информацию на слух. Но всё равно спасибо, за что-то зацепился и если понадобится, уже знаю куда копать - книга Мэтта Харисона
На Питоне пишу 3 года , за видео спасибо! Отличный язык с кучей библиотек. Джависты конечно хэйтят питон , но мы с другом-джавистом на спор писали на скорость прогу с одинаковой бизнес логикой , джава проиграла. 😂
24:02 что-то насчет файловых дескрипторов сомнения есть у меня, что они пересекаются, как к ним обращаться если они не уникальны в пределах файловой системы? Могу предположить, что если и правда в разных процессах пайтон имеются одинаковые дескрипторы, но на разные файлы - это какой-то маппинг, т.е. мы внутри процесса имеем свои локальные значения, которые при обращении к ОС маппятся к значениям файловой системы.
Для каждого процесса своя таблица файлового дескриптора со своими ФД. Можно открыть два интерпретатора Python в которых вызвать команды по открытию 2х разных файлов, потом вывести значение ФД через .fileno() . В таблице ФД ОС там же не только информация о том где лежит файл, но ещё и режим доступа к примеру. Ну а вообще мне кажется мы об одном и том же говорим, только с разных сторон:))))
8:26 - вместо "разными" надо было сказать "одинаковыми". И общее изложение страдает: автор смешивает id и адрес, и с самого начала вообще непонятно, что имеется в виду. Думал предложить начинающим это видео, но по факту оно только запутывает внимательного зрителя.
разница в поведении в интерактивном и сценарном режимах. В сценарном режиме идет оптимизация, объекты объединяются. Попробуйте ввести этот же код в интерактивном режиме, выполнив его строчка за строчкой.
Спасибо за видео! Жаль, что нет конкретики. Например, неизменяемые x = 5 y = x * 1 id(x) == id(y) #True Но для x = 555 уже не работает. Автор поднял вопрос, и нашел на него ответ, но в мире строгих вычислений, сказать, про "для небольших и часто встречающихся значений, объект ищется в памяти...". Как-то грустно =( В Java, например, есть Integer pool, это массив в 1 байт. И все инты со значением от -128 до 127 будут ссылаться на один и тот же адрес в памяти. Для значений за рамками диапазона, каждый раз будет выделяться новая память. Наверняка в python подобный механизм
согласен с замечанием! действительно, когда делал видео упустил этот момент. Благодаря одному из комментариев, который указал на недосказанность в приведенном доказательстве, углубился в вопрос. Что я понял до этого момента: Под небольшими и часто встречающимися значениями подразумеваются: 1. целые числа в диапазоне от -5 до 256. 2. пустая строка, строки длиной в один символ (мне удалось убедиться в этом только для символов ASCII c 32 по 126), пустой кортеж, а так же значения: None, False, True. 3. для строк длинной более одного символа, все как то неоднозначно, но мне показалось, что если строки состоят из латинских букв и чисел то будут использоваться уже созданные объекты, но во всех ли случаях, не могу утверждать. Вроде, как объекты со значением из первого пункта, а так же пустая строка, пустой кортеж, None, True, False создаются в памяти ещё до загрузки программы, но как это доказать пока не знаю.
x = 555 y = 111 * 5 print(y) print(id(555), id(x), id(y)) print(x is y) # output: True Depends on implementation. One might think that 555 is outside the pre-cached range of integers, but apparently it is not. I even tried pretty large integers, like 5434534534534534, but it still shows identity. Probably the book is a bit dated.
Indeed, it depends on the implementation. The book is aimed at beginners and describes the behavior of CPython (python.org/download), which is the standard and most widely used implementation of Python. This particular aspect is not discussed in the book; the question came up during my reading, and I tried to answer it within the same implementation. Integer objects with values from -5 to 256 are in memory in a single instance.
С 6:44 по 5:58 информация не актуальна для пайтон версии 3.11.4 и выше тк следующий ввод: y=555555555555555 x=111111111111111*5 print(sys.version) print(id(y),' = ',id(x)) print(id(y)==id(x)) Даёт такой вывод: 3.11.4 (main, Sep 30 2023, 10:54:38) [GCC 11.4.0] 483658347728 = 483658347728 True [Program finished] Теперь пайтон проверяет и большие размеры переменных
прикольно. предположу, что это оптимизация от PyCharm. Попробуйте ввести этот же код в стандартном интерпретаторе Python. Я проверил в версии 3.12.1, результат False.
с таким багажем, представление о Python Вы получите быстрее, чем с нуля. Стоит ли на это тратить время - вопрос на который каждый ищет ответ самостоятельно.
Хочу заметить, что программисты постарше советовали мне эту и подобные ей книги прямо на старте. Плохая идея, новичок в них только запутается. Лучше идти писать много кода, и учить несколько языков сразу, а года через 3-4 практики вернуться к азам. Каждому конечно свое, но в таком случае все встаёт на места и нет путаницы в голове.
А разберите разницу в производительности этого транслятора и откомпилиной программы на C++ На идентичных вычислениях без юзания специфических библиотек
@@SklerozRu Верно, Вы правы! Смысл от транслятора, работающего со скоростью C#/10, особенно, если он претендует на сервереые проекты и ИИ?.. Игрушка для студентов и проектов "слепил-впарил-забыл"...
Я не программист. Но мне интересно, как программисты, вне зависимости от языка, или для языка, создают готовые оконные компоненты - классы, типа кнопки, прокрутки, текстбоксы со всеми свойствами и т.д ? Поясню что я имею ввиду. Меня не интересует готовые строчки кода в языках (С#, С++, Python, Java, и т.д), где написав их, описав их свойства, я получу тот или иной ГОТОВЫЙ компонент (кнопка. окно). То есть, в этих языках написал строчку кода, и тебе всё САМО "нарисовалось". Меня НЕ ЭТО интересует. Меня интересует как "нарисованное".(ну хотя бы с помощью win32 api, или ещё чем)..как к примеру, некая прямоугольная область на экране, становиться кнопкой ? Как в неё задаются свойства, события ? Или же как "нарисованная" чёрточка становиться мигающим курсором, и как для всех этих объектов создаётся СИНТАКСИС, для того или иного языка. Как "рисуют" и чем ? Какими "инструментами" ? Тобишь меня интересует та часть айсберга, которая в воде. Даже можно так выразиться - КАКОВЫ ЭТАПЫ РАЗРАБОТКИ того или иного компонента в языке (неважно в каком), от "рисования" до Синтаксиса ? И как "это", нечто новое, связать с компилятором ?
Не ручаюсь за 100% точность, но думаю примерно так: в момент клика мыши ОС, зная положение курсора, передает сигнал о нажатии активной программе, программа так же зная положение курсора определяет на каком графическом элементе был произведен клик (к слову, это не обязательно кнопка). Тут, ясное дело, что программа работает с каким-то графическим фреймворком, и программный объект такого фреймворка, представляющий(отвечающий) за этот графичесий элемент, получает соответствующий сигнал(событие) - например, левый клик мыши и обрабатывает уже в соответствии с бизнес-логикой, которую написал программист (мы). Часть элементов, например, кнопка закрытия программы скорее всего не потребует вручную писать код завершения приложения.
Чтобы это понять, вам нужно самому написать графическую среду без использования сторонних библиотек. Пройти этап переключения с текстового режима хотя бы на графический фрейм-буфер, и начать в нем рисовать точки путем записывания нужных байт в нужные адреса. Затем добавить возможность рисования линий, прямоугольников, шрифтов. Затем написать расшифровщик графических форматов чтобы иконки выводить. Сделать подсистему опроса у железа движения указателя мыши, переводить эти данные в координаты. Отображать по координатам указатель мыши. Потом разработать систему, которая будет помнить каждый объект на экране, координаты его прямоугольника, глубину размещения. При клике мыши, сравнивая эти данные, можно понять, по какому объекту кликнули. Далее нужна подсистема отрисовки/перерисовки, которая правильно перерисовывает объекты на экране при действиях с ними, как минимум на основе пересекающихся прямоугольных областей, чтобы весь экран не перерисовывать. Ну и так далее.
@@xintreavideo Благодарю за ответ. Мне как раз таки вся эта "изнанка" интересна. А вы какую литературу посоветуете почитать на эту тему, или какие источники в интернете, мне помогут по подробней в эту тему углубиться ?
@@Юра-щ6т8п , так нету такой литературы. За каждым предложением стоит изучение нескольких книг по своей тематике и технической документации. На русском языке информации крайне мало, поэтому надо знать английский на уровне нейтива. Плюс надо по-сути заниматься интернет-археологией чтобы что-то внятное и редкое найти. Плюс если вы хотите заниматься всем легально, приготовьте крупную сумму, потому что официальная документация, особенно на железо, в свободном виде не доступна. Либо будьте готовы пиратить. Да и книжки будут не дешёвыми. Кроме того, сейчас практически нет специалистов, которые бы во всем этом разбирались. Каждый знает свою полянку и не более того.
Ну это же идиотство. Зачем при простой арифметической операции без изменения типа создавать новый объект? Это сильно снижает производительность. Видимо, разработчики пайтона не дружат с головой. Не только синтаксис этого языка откровенно идиотский, но и программная реализация.
Это Ваше восприятие, не более того. Многие вещи снаружи кажутся элементарными или идиотскими, пока не углубишься. А Вы попробуйте. Свой интерпретатор своего языка сделать. Расскажете потом об открытиях.
@@SklerozRu , я что, больной? Чтобы сделать нормальный интерпретатор современного ЯП потребуется целый институт программистов. А писать аналоги разных пайтонов "на коленке" у меня нет никакого желания.
5:18. Справедливо только для диапазона -5..256, ибо эти числа храняться в памяти постоянно. employees = 123456 id(123456) => 2612696004240 id(employees) => 2612696004752
Ха, прикол. Получается этот пример работает только для этого диапазона, так как для других литералов даже для аргумента в id() создается новый объект с таким же значением. Выходит для более общего случая требуется ещё одна переменная для этого же объекта типа emploees = с = 123456, и уже относительно их id(с) и id(emploees) рассматривать, как менятся адрес. Спасибо за уточнение! очень интересно!:)
самый частый вопрос:
почему при проверке кода:
x = 555
y = 111*5
x is y
выдает вместо False (как на видео) - True.
Скорее всего в различии при запуске кода в сценарном и интерактивном режимах.
В примере я использовал интерактивный режим:
исполнение строка за строкой, но если использовать сценарный режим, то Python применяет оптимизацию неизменяемых объектов и может объединить их.
Почему может? т.к. зависит от:
- реализации Python,
- версии
- контекста (например:
- динамически созданные объекты int("555")
- объекты в разных блоках кода)
Спасибо автору, редко пишу комментарии, но тут работа заслуживает похвалы! Изучаю питон больше года, почерпнул новой информации
спасибо:) очень ценно!:)
Спасибо за видео-пересказ. Если изучать самостоятельно( + закрепление материала) техническую литературу, то уходит слишком много времени. А тут все "по полочкам". Спасибо❤
Шикарное видео ,объем информации большой ,нужно несколько раз смотреть ,спасибо )
спасибо. ага, это видео решил не разбивать на части, было интересно, как его будут смотреть по сравнению с короткими видео.
@@ITPro-ei8cs похоже что смотрят довольно неплохо д
да, считая, что видео на очень ограниченный круг, думаю что неплохо зашло. Дилема была такая: разбивать видео на части или выкладывать целиком. В сумме маленькие видео могут дать больше охват, но это тоже не факт. А большое может вообще не стрельнуть. Это так чисто интерес разобраться самому, как работает ютуб.
@@ITPro-ei8cs Я помню раньше классно выстреливало если много людей отписалось и потом обратно подписалось , оно считало только новых подписчиков )
о! интересно. у меня ежедневно число отписавшихся от 0-25% от количества подписавшихся, не знаю только одни и те же это люди или нет. А то бывает случайнно нажмешь на подписаться, и отписываешься сразу. Хотя, в дни когда 25% это уже случайностью не объяснить:)
Вчера ночью случайно увидела ваше видео в рекомендациях, хотя я всего на всего мастер маникюра, решила ради интереса включить. Я уснула крепким сном 💯😌 теперь знаю кого буду слушать перед сном 🤞🏽 спасибо вам 🙏🏽
:))))) неожиданное применение, подумаю над переименованием видео в "лекция перед сном" или что-то такое:)
рекомендую еще видео: как устроена видеокарта и как на низком уровне работает процессор ! :)
@АлексейКа-б2д 🤞🏽😁
Отличное видео для тех кто пытается понять как работает python под капотом, спасибо)
спасибо:)
Это видео - отличная визитка Вашего канала. Позволю себе критику, немного бы визуал подтянуть (всё впереди). В остальном же - очень хочу продолжить смотреть Ваши видео. И продолжу :)
спасибо большое:)
Чувак, это очень крутое видео. Спасибо!
спасибо!
Отличное объяснение, спасибо!)
спасибо!:)
Большую часть информации из видео лично я узнал из начала 1-ого тома Лутца "Изучаем Python")
какое же там тогда золото во втором томе!:)
Очень крутой контент! Продолжай в том же духе!
спасибо)
Круто объясняешь, понятно. Подписался
спасибо. добро пожаловать на канал:)
Вообще ролик прекрасный. Для новичков (и 80% "мидлов") тут масса полезных разъяснений.
👍 однозначно за умение доводить информацию четко, понятно, локанично, без мути
спасибо!)
Спасибо автору - отличное видео, мотивирующее изучение программирования!
спасибо! отлично! значит одна из целей создания канала достигается:)
Хорошее альтернативное объяснение, и осмысление Python.
спасибо:)
Дядь, ты офигеген. Помазал душу мёдом. 🍯
:))) спасибо
Формат 🚀
Блин, это так круто сделано. 😮 спасибо огромное. И пайтону поучился и тому, как понятно и лаконично можно слайды делать.
спасибо!))))
Грамотно и понятно, что самое важное!
спасибо!
Спасибо, прекрасное объяснение и канал. Подписался
спасибо:) добро пожаловать на канал:)
Видео отличное! Все четко и по делу, оформление понравилось.
спасибо:)
Воу, весьма занятная информация. Пусть и на питоне и не так часто пишу, но, тем не менее, весьма полезно узнать, благодарю
😊👍
Рекомндую следующее видео: "написание kernel-драйверов для чайников" 😂
я пока ещё до этого не дорос 😁 спасибо за рекомендацию!
💯👍! Очень четко!
👌:)
Красавчик. Видео зачет. Наконец то многое стало на свои места и появилось понимание чо именно мне нужно изучать для Data science и примерно в какой последовательности. Кстати, есть ли смысл после твоего видео прочесть эту книгу, или достаточно твоего видео?
спасибо!:)
По поводу видео и книги. Те темы которые я взял в видео я постарался расширить, но возможно объяснение автора книги зайдет лучше. Некоторые темы я пропустил, так как они мне показались не раскрыты или в других книгах (именно для меня) описаны лучше. И опять же два человека прочитав одно и тоже в силу своего опыта могут сделать разные выводы, как по глубине, так и по смыслу. Поэтому мои видео ни в коему случае не могут быть заменой чтения, они дают возможность лишь узнать, как понял материал один из читалей (я), что должно (по моему мнению) облегчить и ускорить процесс обучения для других, двигающихся в схожем направлении.
Очень понравилось видео, жду новых видео про Pascal!❤
спасибо. Да кстати! интересная идея, как устроен Pascal, Java ит.д.
@ITPro-ei8cs ☺
Годно, респект
спасибо:)
Привет! Спасибо большое! Очень приятно и понятно в целом . Только тяжело понять когда этих окон много и понять что куда и как идёт , надо прям несколько раз перематывать и переслушивать, так как этих слов технических (вроде простых) много в какие-то определённые периоды))
привет. спасибо:) да, согласен, много окон напрягает, я сам когда монтировал пересматривал много раз, при том, что до этого ещё и перечитывал много раз что бы понять, как это нарисовать. Но если убирать их, мне кажется можно забыть, о каких окнах идет речь. вот сейчас мысль пришла, попробовать окна подсвечивать, что бы понимание было какое активное - куда смотреть. Постараюсь учесть в следующих видео при необходимости.
@ITPro-ei8cs ты молодец! Прям молодец! И людей слышишь и не воспринимаешь это в штыки!!
@@ITPro-ei8cs недавно узнал про доску MIRO , наверняка ты знаешь про нее, а если нет то посмотри , полезная штука
я слышал про MIRO, но не пользовался. сейчас посмотрел видео, что с ней делают, действительно много прикольных возможностей дает - разгул для творчества:) . спасибо за совет. мне кажется я что-то подобное делал, только Figmа использовал и Xmind. вообще сейчас столько программ крутых, когда бы разобраться в них.... спасибо:)
Для себя понял, что плохо воспринимаю информацию на слух. Но всё равно спасибо, за что-то зацепился и если понадобится, уже знаю куда копать - книга Мэтта Харисона
я тоже на слух хуже усваиваю :)
Спасибо
😊
На Питоне пишу 3 года , за видео спасибо! Отличный язык с кучей библиотек. Джависты конечно хэйтят питон , но мы с другом-джавистом на спор писали на скорость прогу с одинаковой бизнес логикой , джава проиграла. 😂
спасибо:). надеюсь друг остался другом:))
24:02 что-то насчет файловых дескрипторов сомнения есть у меня, что они пересекаются, как к ним обращаться если они не уникальны в пределах файловой системы? Могу предположить, что если и правда в разных процессах пайтон имеются одинаковые дескрипторы, но на разные файлы - это какой-то маппинг, т.е. мы внутри процесса имеем свои локальные значения, которые при обращении к ОС маппятся к значениям файловой системы.
Для каждого процесса своя таблица файлового дескриптора со своими ФД. Можно открыть два интерпретатора Python в которых вызвать команды по открытию 2х разных файлов, потом вывести значение ФД через .fileno() . В таблице ФД ОС там же не только информация о том где лежит файл, но ещё и режим доступа к примеру. Ну а вообще мне кажется мы об одном и том же говорим, только с разных сторон:))))
Супер спасибо
спасибо)
Лайк, подписка, ибо контент годный, не нужно книгу особо читать, ахвхав
:)))) спасибо. но книгу все же стоит почитать:))) в видео не всё получилось уместить
8:26 - вместо "разными" надо было сказать "одинаковыми".
И общее изложение страдает: автор смешивает id и адрес, и с самого начала вообще непонятно, что имеется в виду.
Думал предложить начинающим это видео, но по факту оно только запутывает внимательного зрителя.
опечатка в названии функции update, в видео - udpate
точно! спасибо :). Вы очень внимательны! мне казалось, что я весь код копировал из терминала, выходит не весь, увлекся раскраской:(
great!
thanks!
полезно
👍
Действительно полезное видео, только вот идентификаторы x = 555 и y = 111 * 5 равны. Возможно это в новой версии так
разница в поведении в интерактивном и сценарном режимах. В сценарном режиме идет оптимизация, объекты объединяются. Попробуйте ввести этот же код в интерактивном режиме, выполнив его строчка за строчкой.
Спасибо за видео!
Жаль, что нет конкретики. Например, неизменяемые
x = 5
y = x * 1
id(x) == id(y) #True
Но для x = 555 уже не работает. Автор поднял вопрос, и нашел на него ответ, но в мире строгих вычислений, сказать, про "для небольших и часто встречающихся значений, объект ищется в памяти...". Как-то грустно =(
В Java, например, есть Integer pool, это массив в 1 байт. И все инты со значением от -128 до 127 будут ссылаться на один и тот же адрес в памяти. Для значений за рамками диапазона, каждый раз будет выделяться новая память.
Наверняка в python подобный механизм
согласен с замечанием! действительно, когда делал видео упустил этот момент. Благодаря одному из комментариев, который указал на недосказанность в приведенном доказательстве, углубился в вопрос. Что я понял до этого момента: Под небольшими и часто встречающимися значениями подразумеваются:
1. целые числа в диапазоне от -5 до 256.
2. пустая строка, строки длиной в один символ (мне удалось убедиться в этом только для символов ASCII c 32 по 126), пустой кортеж, а так же значения: None, False, True.
3. для строк длинной более одного символа, все как то неоднозначно, но мне показалось, что если строки состоят из латинских букв и чисел то будут использоваться уже созданные объекты, но во всех ли случаях, не могу утверждать.
Вроде, как объекты со значением из первого пункта, а так же пустая строка, пустой кортеж, None, True, False создаются в памяти ещё до загрузки программы, но как это доказать пока не знаю.
Хорошая подача и графика. Лайк!
спасибо:)
x = 555
y = 111 * 5
print(y)
print(id(555), id(x), id(y))
print(x is y) # output: True
Depends on implementation. One might think that 555 is outside the pre-cached range of integers, but apparently it is not. I even tried pretty large integers, like 5434534534534534, but it still shows identity. Probably the book is a bit dated.
Indeed, it depends on the implementation. The book is aimed at beginners and describes the behavior of CPython (python.org/download), which is the standard and most widely used implementation of Python. This particular aspect is not discussed in the book; the question came up during my reading, and I tried to answer it within the same implementation. Integer objects with values from -5 to 256 are in memory in a single instance.
С 6:44 по 5:58 информация не актуальна для пайтон версии 3.11.4 и выше тк следующий ввод:
y=555555555555555
x=111111111111111*5
print(sys.version)
print(id(y),' = ',id(x))
print(id(y)==id(x))
Даёт такой вывод:
3.11.4 (main, Sep 30 2023, 10:54:38) [GCC 11.4.0]
483658347728 = 483658347728
True
[Program finished]
Теперь пайтон проверяет и большие размеры переменных
прикольно. предположу, что это оптимизация от PyCharm. Попробуйте ввести этот же код в стандартном интерпретаторе Python. Я проверил в версии 3.12.1, результат False.
@@ITPro-ei8cs Проверив на версии 3.13.1 на vim через запуск python ...py вывод true, но при выводе в пайтон консоли false, странно)
Это интересненько
А если у меня есть представление о архитектуре процессора, пк, ассемблера, ос, c, c++, c#, java то мне нужно представление о питоне?
с таким багажем, представление о Python Вы получите быстрее, чем с нуля. Стоит ли на это тратить время - вопрос на который каждый ищет ответ самостоятельно.
👍
👍
Хочу заметить, что программисты постарше советовали мне эту и подобные ей книги прямо на старте. Плохая идея, новичок в них только запутается. Лучше идти писать много кода, и учить несколько языков сразу, а года через 3-4 практики вернуться к азам. Каждому конечно свое, но в таком случае все встаёт на места и нет путаницы в голове.
ну мне кажется у задачи может быть несколько правильных решений, поэтоу да, каждому свое. новички ведь тоже все разные. На скольки языках уже пишете?
Все понятно кроме одного, почему переменая а не ссылка. В С переменная, так как изменяется значение, указатель не меняется.
хм. возможно что бы согласовать терминологию с другими языками.
А разберите разницу в производительности этого транслятора и откомпилиной программы на C++
На идентичных вычислениях без юзания специфических библиотек
Ну, на самом деле, есть такие сравнения. Кому не насрать на ресурсы, можете найти сами Python vs C++ vs C# Speed Comparison
подобные эксперименты меня бы очень заинтересовали, но я до них ещё недорос:) но! возможно в будущем....
Ну а смысл? И так результат ясен. Инструменты разные, задачи разные. Каждый инструмент хорош по-своему.
@@SklerozRu Верно, Вы правы! Смысл от транслятора, работающего со скоростью C#/10, особенно, если он претендует на сервереые проекты и ИИ?.. Игрушка для студентов и проектов "слепил-впарил-забыл"...
подписка
👍😊
Я не программист. Но мне интересно, как программисты, вне зависимости от языка, или для языка, создают готовые оконные компоненты - классы, типа кнопки, прокрутки, текстбоксы со всеми свойствами и т.д ? Поясню что я имею ввиду. Меня не интересует готовые строчки кода в языках (С#, С++, Python, Java, и т.д), где написав их, описав их свойства, я получу тот или иной ГОТОВЫЙ компонент (кнопка. окно). То есть, в этих языках написал строчку кода, и тебе всё САМО "нарисовалось". Меня НЕ ЭТО интересует. Меня интересует как "нарисованное".(ну хотя бы с помощью win32 api, или ещё чем)..как к примеру, некая прямоугольная область на экране, становиться кнопкой ? Как в неё задаются свойства, события ? Или же как "нарисованная" чёрточка становиться мигающим курсором, и как для всех этих объектов создаётся СИНТАКСИС, для того или иного языка. Как "рисуют" и чем ? Какими "инструментами" ? Тобишь меня интересует та часть айсберга, которая в воде. Даже можно так выразиться - КАКОВЫ ЭТАПЫ РАЗРАБОТКИ того или иного компонента в языке (неважно в каком), от "рисования" до Синтаксиса ? И как "это", нечто новое, связать с компилятором ?
к сожалению не смогу ответить, я этим не занимался, попытался разобраться, что бы найти ответ, но уход в глубокие дебри получается.
Не ручаюсь за 100% точность, но думаю примерно так: в момент клика мыши ОС, зная положение курсора, передает сигнал о нажатии активной программе, программа так же зная положение курсора определяет на каком графическом элементе был произведен клик (к слову, это не обязательно кнопка). Тут, ясное дело, что программа работает с каким-то графическим фреймворком, и программный объект такого фреймворка, представляющий(отвечающий) за этот графичесий элемент, получает соответствующий сигнал(событие) - например, левый клик мыши и обрабатывает уже в соответствии с бизнес-логикой, которую написал программист (мы). Часть элементов, например, кнопка закрытия программы скорее всего не потребует вручную писать код завершения приложения.
Чтобы это понять, вам нужно самому написать графическую среду без использования сторонних библиотек. Пройти этап переключения с текстового режима хотя бы на графический фрейм-буфер, и начать в нем рисовать точки путем записывания нужных байт в нужные адреса. Затем добавить возможность рисования линий, прямоугольников, шрифтов. Затем написать расшифровщик графических форматов чтобы иконки выводить. Сделать подсистему опроса у железа движения указателя мыши, переводить эти данные в координаты. Отображать по координатам указатель мыши. Потом разработать систему, которая будет помнить каждый объект на экране, координаты его прямоугольника, глубину размещения. При клике мыши, сравнивая эти данные, можно понять, по какому объекту кликнули. Далее нужна подсистема отрисовки/перерисовки, которая правильно перерисовывает объекты на экране при действиях с ними, как минимум на основе пересекающихся прямоугольных областей, чтобы весь экран не перерисовывать. Ну и так далее.
@@xintreavideo Благодарю за ответ. Мне как раз таки вся эта "изнанка" интересна. А вы какую литературу посоветуете почитать на эту тему, или какие источники в интернете, мне помогут по подробней в эту тему углубиться ?
@@Юра-щ6т8п , так нету такой литературы. За каждым предложением стоит изучение нескольких книг по своей тематике и технической документации. На русском языке информации крайне мало, поэтому надо знать английский на уровне нейтива. Плюс надо по-сути заниматься интернет-археологией чтобы что-то внятное и редкое найти. Плюс если вы хотите заниматься всем легально, приготовьте крупную сумму, потому что официальная документация, особенно на железо, в свободном виде не доступна. Либо будьте готовы пиратить. Да и книжки будут не дешёвыми. Кроме того, сейчас практически нет специалистов, которые бы во всем этом разбирались. Каждый знает свою полянку и не более того.
Ну это же идиотство. Зачем при простой арифметической операции без изменения типа создавать новый объект? Это сильно снижает производительность. Видимо, разработчики пайтона не дружат с головой. Не только синтаксис этого языка откровенно идиотский, но и программная реализация.
🤷♂️. Хорошо что есть другие языки, а у нас есть выбор :)
Это Ваше восприятие, не более того.
Многие вещи снаружи кажутся элементарными или идиотскими, пока не углубишься.
А Вы попробуйте. Свой интерпретатор своего языка сделать. Расскажете потом об открытиях.
@@SklerozRu , я что, больной? Чтобы сделать нормальный интерпретатор современного ЯП потребуется целый институт программистов. А писать аналоги разных пайтонов "на коленке" у меня нет никакого желания.
Очень умное сравнение с коровой.🐂🐂 Совсем Лукашенко 😂
:)))))))
5:18.
Справедливо только для диапазона -5..256, ибо эти числа храняться в памяти постоянно.
employees = 123456
id(123456) => 2612696004240
id(employees) => 2612696004752
Ха, прикол. Получается этот пример работает только для этого диапазона, так как для других литералов даже для аргумента в id() создается новый объект с таким же значением.
Выходит для более общего случая требуется ещё одна переменная для этого же объекта типа emploees = с = 123456, и уже относительно их id(с) и id(emploees) рассматривать, как менятся адрес.
Спасибо за уточнение! очень интересно!:)