Как устроен PYTHON

Поделиться
HTML-код
  • Опубликовано: 9 фев 2025

Комментарии • 136

  • @ITPro-ei8cs
    @ITPro-ei8cs  Месяц назад +1

    самый частый вопрос:
    почему при проверке кода:
    x = 555
    y = 111*5
    x is y
    выдает вместо False (как на видео) - True.
    Скорее всего в различии при запуске кода в сценарном и интерактивном режимах.
    В примере я использовал интерактивный режим:
    исполнение строка за строкой, но если использовать сценарный режим, то Python применяет оптимизацию неизменяемых объектов и может объединить их.
    Почему может? т.к. зависит от:
    - реализации Python,
    - версии
    - контекста (например:
    - динамически созданные объекты int("555")
    - объекты в разных блоках кода)

    • @moshamiracle
      @moshamiracle 16 дней назад

      потому что "y" при объявлении видит, что там выражение, поэтому еще до его вычисления оно будет отличным от "x" объектом. А в примере, когда было "5" и "1*5" единица отбрасывается на этапе оптимизации, поэтому остается только 5 и там оба объекта уже имеют одну ссылку

    • @ITPro-ei8cs
      @ITPro-ei8cs  16 дней назад

      в интерактивном режиме работает только для целых чисел от - 5 до 256. Только что проверил для 257 уже False:
      x = 257
      y = 1*257
      x is y
      False
      получается дело не в 1це.
      Если я правильно понял Ваш комментарий

  • @Anonymnyanonym
    @Anonymnyanonym 2 месяца назад +19

    Спасибо автору, редко пишу комментарии, но тут работа заслуживает похвалы! Изучаю питон больше года, почерпнул новой информации

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад +2

      спасибо:) очень ценно!:)

  • @bulba1995
    @bulba1995 Месяц назад +7

    Шикарное видео ,объем информации большой ,нужно несколько раз смотреть ,спасибо )

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      спасибо. ага, это видео решил не разбивать на части, было интересно, как его будут смотреть по сравнению с короткими видео.

    • @bulba1995
      @bulba1995 Месяц назад

      ​@@ITPro-ei8cs похоже что смотрят довольно неплохо д

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      да, считая, что видео на очень ограниченный круг, думаю что неплохо зашло. Дилема была такая: разбивать видео на части или выкладывать целиком. В сумме маленькие видео могут дать больше охват, но это тоже не факт. А большое может вообще не стрельнуть. Это так чисто интерес разобраться самому, как работает ютуб.

    • @bulba1995
      @bulba1995 Месяц назад

      @@ITPro-ei8cs Я помню раньше классно выстреливало если много людей отписалось и потом обратно подписалось , оно считало только новых подписчиков )

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      о! интересно. у меня ежедневно число отписавшихся от 0-25% от количества подписавшихся, не знаю только одни и те же это люди или нет. А то бывает случайнно нажмешь на подписаться, и отписываешься сразу. Хотя, в дни когда 25% это уже случайностью не объяснить:)

  • @basmaartikova6810
    @basmaartikova6810 2 месяца назад +9

    Вчера ночью случайно увидела ваше видео в рекомендациях, хотя я всего на всего мастер маникюра, решила ради интереса включить. Я уснула крепким сном 💯😌 теперь знаю кого буду слушать перед сном 🤞🏽 спасибо вам 🙏🏽

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад +5

      :))))) неожиданное применение, подумаю над переименованием видео в "лекция перед сном" или что-то такое:)

    • @АлексейКа-б2д
      @АлексейКа-б2д 2 месяца назад +4

      рекомендую еще видео: как устроена видеокарта и как на низком уровне работает процессор ! :)

    • @basmaartikova6810
      @basmaartikova6810 Месяц назад +1

      @АлексейКа-б2д 🤞🏽😁

  • @denissushilov6212
    @denissushilov6212 Месяц назад +7

    Отличное видео для тех кто пытается понять как работает python под капотом, спасибо)

  • @ИванТунаев-ь1ф
    @ИванТунаев-ь1ф Месяц назад +2

    Большую часть информации из видео лично я узнал из начала 1-ого тома Лутца "Изучаем Python")

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      какое же там тогда золото во втором томе!:)

  • @ПавелК-123
    @ПавелК-123 Месяц назад +2

    Отличное объяснение, спасибо!)

  • @against_all
    @against_all Месяц назад +3

    Дядь, ты офигеген. Помазал душу мёдом. 🍯

  • @ВоронцовРоман-с3к
    @ВоронцовРоман-с3к Месяц назад +5

    Чувак, это очень крутое видео. Спасибо!

  • @rick-n4i6d
    @rick-n4i6d Месяц назад +2

    Очень крутой контент! Продолжай в том же духе!

  • @ouhguy2959
    @ouhguy2959 2 месяца назад +9

    Это видео - отличная визитка Вашего канала. Позволю себе критику, немного бы визуал подтянуть (всё впереди). В остальном же - очень хочу продолжить смотреть Ваши видео. И продолжу :)

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад +2

      спасибо большое:)

  • @severdav2
    @severdav2 Месяц назад +3

    Круто объясняешь, понятно. Подписался

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      спасибо. добро пожаловать на канал:)

  • @ЕвгенийЗ-т2и
    @ЕвгенийЗ-т2и 2 месяца назад +5

    Хорошее альтернативное объяснение, и осмысление Python.

  • @КириллГапонов-м7ф
    @КириллГапонов-м7ф Месяц назад +1

    Автор большой молодец, спасибо огромное за работу

  • @poc_cat5428
    @poc_cat5428 Месяц назад

    Спасибо за видео-пересказ. Если изучать самостоятельно( + закрепление материала) техническую литературу, то уходит слишком много времени. А тут все "по полочкам". Спасибо❤

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      спасибо за отзыв!:) согласен, времени на тех. литературу уходит очень много....

  • @Constantine1975
    @Constantine1975 Месяц назад +1

    Спасибо автору - отличное видео, мотивирующее изучение программирования!

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      спасибо! отлично! значит одна из целей создания канала достигается:)

  • @positive6329
    @positive6329 Месяц назад

    Вообще ролик прекрасный. Для новичков (и 80% "мидлов") тут масса полезных разъяснений.
    👍 однозначно за умение доводить информацию четко, понятно, локанично, без мути

  • @fledrog
    @fledrog Месяц назад

    Грамотно и понятно, что самое важное!

  • @aleks_versus
    @aleks_versus Месяц назад

    Блин, это так круто сделано. 😮 спасибо огромное. И пайтону поучился и тому, как понятно и лаконично можно слайды делать.

  • @RUDIARIUSmax
    @RUDIARIUSmax 2 месяца назад +5

    Спасибо, прекрасное объяснение и канал. Подписался

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад

      спасибо:) добро пожаловать на канал:)

  • @deeenzov
    @deeenzov Месяц назад

    Воу, весьма занятная информация. Пусть и на питоне и не так часто пишу, но, тем не менее, весьма полезно узнать, благодарю

  • @Vladimirelec
    @Vladimirelec Месяц назад

    Видео отличное! Все четко и по делу, оформление понравилось.

  • @Тролль-в1м
    @Тролль-в1м Месяц назад

    Очень понравилось видео, жду новых видео про Pascal!❤

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      спасибо. Да кстати! интересная идея, как устроен Pascal, Java ит.д.

    • @Тролль-в1м
      @Тролль-в1м Месяц назад

      @ITPro-ei8cs ☺

  • @lemmikillmister895
    @lemmikillmister895 Месяц назад +4

    Рекомндую следующее видео: "написание kernel-драйверов для чайников" 😂

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      я пока ещё до этого не дорос 😁 спасибо за рекомендацию!

  • @artyomklimov3447
    @artyomklimov3447 2 месяца назад +3

    Годно, респект

  • @ТатьянаВарламова-с3о

    💯👍! Очень четко!

  • @СергейЩепилин
    @СергейЩепилин Месяц назад +2

    Спасибо

  • @АндрейМ-й8щ
    @АндрейМ-й8щ Месяц назад

    Для себя понял, что плохо воспринимаю информацию на слух. Но всё равно спасибо, за что-то зацепился и если понадобится, уже знаю куда копать - книга Мэтта Харисона

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      я тоже на слух хуже усваиваю :)

  • @Dymytrii-d6b
    @Dymytrii-d6b 2 месяца назад +2

    Красавчик. Видео зачет. Наконец то многое стало на свои места и появилось понимание чо именно мне нужно изучать для Data science и примерно в какой последовательности. Кстати, есть ли смысл после твоего видео прочесть эту книгу, или достаточно твоего видео?

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад +3

      спасибо!:)
      По поводу видео и книги. Те темы которые я взял в видео я постарался расширить, но возможно объяснение автора книги зайдет лучше. Некоторые темы я пропустил, так как они мне показались не раскрыты или в других книгах (именно для меня) описаны лучше. И опять же два человека прочитав одно и тоже в силу своего опыта могут сделать разные выводы, как по глубине, так и по смыслу. Поэтому мои видео ни в коему случае не могут быть заменой чтения, они дают возможность лишь узнать, как понял материал один из читалей (я), что должно (по моему мнению) облегчить и ускорить процесс обучения для других, двигающихся в схожем направлении.

  • @ИльяМонархович
    @ИльяМонархович Месяц назад +4

    Хочу заметить, что программисты постарше советовали мне эту и подобные ей книги прямо на старте. Плохая идея, новичок в них только запутается. Лучше идти писать много кода, и учить несколько языков сразу, а года через 3-4 практики вернуться к азам. Каждому конечно свое, но в таком случае все встаёт на места и нет путаницы в голове.

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +2

      ну мне кажется у задачи может быть несколько правильных решений, поэтоу да, каждому свое. новички ведь тоже все разные. На скольки языках уже пишете?

    • @TurboGamasek228
      @TurboGamasek228 2 дня назад

      после С++ это все очевидным кажется... ну или если знаешь хотя бы базовую информатику (комп саенс).
      хотя современный программист не обязательно человек, который понимает как устроен компьютер...

  • @Dietfried_Bouginviliya
    @Dietfried_Bouginviliya Месяц назад

    Лайк, подписка, ибо контент годный, не нужно книгу особо читать, ахвхав

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      :)))) спасибо. но книгу все же стоит почитать:))) в видео не всё получилось уместить

  • @ГолосРоссии-ч6м
    @ГолосРоссии-ч6м Месяц назад

    Супер спасибо

  • @Lyohich84
    @Lyohich84 Месяц назад

    👍

  • @rami30_m38
    @rami30_m38 Месяц назад

    Действительно полезное видео, только вот идентификаторы x = 555 и y = 111 * 5 равны. Возможно это в новой версии так

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

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

  • @darkon3899
    @darkon3899 9 дней назад

    1:23 "Несколько переменных могут ссылаться на один и тот же объект", на примере несколько переменных имеют одно и тоже значение, а не ссылаются, ссылались бы они если бы x = y, но даже в таком случае так как int это тип-значение то x бы просто скопировал значение y, а не ссылку.

    • @ITPro-ei8cs
      @ITPro-ei8cs  9 дней назад

      Если я правильно понял суть комментария, подразумевая всё же, что в Python переменные ссылаются на объекты, а не на значения, а вы имеете ввиду, что будут ссылаться на два разных объекта, у которых одинаковые значения, то как раз таки в случае с типом int в диапазоне от -5 до 256 не обязательно присваивать объекты напрямую с помощью x=y, т.к. объекты с этими значениями обычно хранятся в единственном экземпляре, что можно проверить инструкцией x is y. Получается в примере со значением 77 именно так: несколько переменных (x, y) ссылаются на один и тот же объект (int, 77). Но ключевое слово там: «могут»: да, в каких то случаях достаточно присваивания одинакового значения, а в каких то нужно использовать x=y, важное в этом моменте: на один и тот же объект могут ссылаться несколько переменных. Если я понял комментарий неправильно, поясните.

    • @darkon3899
      @darkon3899 8 дней назад +1

      @@ITPro-ei8cs Да, вы поняли все правильно, я поискал в интернете, и действительно все так как вы говорите. (Я даже немного удивился тому как это реализовано в Python)

  • @alexjuly7097
    @alexjuly7097 2 месяца назад

    24:02 что-то насчет файловых дескрипторов сомнения есть у меня, что они пересекаются, как к ним обращаться если они не уникальны в пределах файловой системы? Могу предположить, что если и правда в разных процессах пайтон имеются одинаковые дескрипторы, но на разные файлы - это какой-то маппинг, т.е. мы внутри процесса имеем свои локальные значения, которые при обращении к ОС маппятся к значениям файловой системы.

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад

      Для каждого процесса своя таблица файлового дескриптора со своими ФД. Можно открыть два интерпретатора Python в которых вызвать команды по открытию 2х разных файлов, потом вывести значение ФД через .fileno() . В таблице ФД ОС там же не только информация о том где лежит файл, но ещё и режим доступа к примеру. Ну а вообще мне кажется мы об одном и том же говорим, только с разных сторон:))))

  • @andynaz7044
    @andynaz7044 2 месяца назад

    great!

  • @ciklomat
    @ciklomat Месяц назад

    полезно

  • @MrAllmp3
    @MrAllmp3 2 месяца назад +1

    Хорошая подача и графика. Лайк!

  • @НиколайСкородумов-л7з

    Спасибо за видео!
    Жаль, что нет конкретики. Например, неизменяемые
    x = 5
    y = x * 1
    id(x) == id(y) #True
    Но для x = 555 уже не работает. Автор поднял вопрос, и нашел на него ответ, но в мире строгих вычислений, сказать, про "для небольших и часто встречающихся значений, объект ищется в памяти...". Как-то грустно =(
    В Java, например, есть Integer pool, это массив в 1 байт. И все инты со значением от -128 до 127 будут ссылаться на один и тот же адрес в памяти. Для значений за рамками диапазона, каждый раз будет выделяться новая память.
    Наверняка в python подобный механизм

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      согласен с замечанием! действительно, когда делал видео упустил этот момент. Благодаря одному из комментариев, который указал на недосказанность в приведенном доказательстве, углубился в вопрос. Что я понял до этого момента: Под небольшими и часто встречающимися значениями подразумеваются:
      1. целые числа в диапазоне от -5 до 256.
      2. пустая строка, строки длиной в один символ (мне удалось убедиться в этом только для символов ASCII c 32 по 126), пустой кортеж, а так же значения: None, False, True.
      3. для строк длинной более одного символа, все как то неоднозначно, но мне показалось, что если строки состоят из латинских букв и чисел то будут использоваться уже созданные объекты, но во всех ли случаях, не могу утверждать.
      Вроде, как объекты со значением из первого пункта, а так же пустая строка, пустой кортеж, None, True, False создаются в памяти ещё до загрузки программы, но как это доказать пока не знаю.

  • @xintreavideo
    @xintreavideo Месяц назад +1

    8:26 - вместо "разными" надо было сказать "одинаковыми".
    И общее изложение страдает: автор смешивает id и адрес, и с самого начала вообще непонятно, что имеется в виду.
    Думал предложить начинающим это видео, но по факту оно только запутывает внимательного зрителя.

  • @gaben_aTan
    @gaben_aTan 2 месяца назад +2

    На Питоне пишу 3 года , за видео спасибо! Отличный язык с кучей библиотек. Джависты конечно хэйтят питон , но мы с другом-джавистом на спор писали на скорость прогу с одинаковой бизнес логикой , джава проиграла. 😂

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад

      спасибо:). надеюсь друг остался другом:))

  • @Aspadien
    @Aspadien 2 месяца назад

    А если у меня есть представление о архитектуре процессора, пк, ассемблера, ос, c, c++, c#, java то мне нужно представление о питоне?

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад

      с таким багажем, представление о Python Вы получите быстрее, чем с нуля. Стоит ли на это тратить время - вопрос на который каждый ищет ответ самостоятельно.

  • @alexneigh7089
    @alexneigh7089 Месяц назад

    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.

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      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.

  • @positive6329
    @positive6329 Месяц назад

    А разберите разницу в производительности этого транслятора и откомпилиной программы на C++
    На идентичных вычислениях без юзания специфических библиотек

    • @positive6329
      @positive6329 Месяц назад +2

      Ну, на самом деле, есть такие сравнения. Кому не насрать на ресурсы, можете найти сами Python vs C++ vs C# Speed Comparison

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      подобные эксперименты меня бы очень заинтересовали, но я до них ещё недорос:) но! возможно в будущем....

    • @SklerozRu
      @SklerozRu Месяц назад

      Ну а смысл? И так результат ясен. Инструменты разные, задачи разные. Каждый инструмент хорош по-своему.

    • @positive6329
      @positive6329 Месяц назад +1

      @@SklerozRu Верно, Вы правы! Смысл от транслятора, работающего со скоростью C#/10, особенно, если он претендует на сервереые проекты и ИИ?.. Игрушка для студентов и проектов "слепил-впарил-забыл"...

  • @ВсеславПрохоренко
    @ВсеславПрохоренко Месяц назад

    С 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]
    Теперь пайтон проверяет и большие размеры переменных

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      прикольно. предположу, что это оптимизация от PyCharm. Попробуйте ввести этот же код в стандартном интерпретаторе Python. Я проверил в версии 3.12.1, результат False.

    • @NoName-nr9gn
      @NoName-nr9gn Месяц назад

      @@ITPro-ei8cs Проверив на версии 3.13.1 на vim через запуск python ...py вывод true, но при выводе в пайтон консоли false, странно)

    • @WHGM-f5z
      @WHGM-f5z Месяц назад

      Это интересненько

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      вообщем оказывается это сказывается разница в поведении в интерактивном и сценарном режимах. в интерактивном режиме идет обработка строка за строкой, объекты не объединются. в сценарном режиме код оптимизируется при компиляции и дублирующие объекты могут быть объеденены. 🤷‍♂️

  • @pampam6739
    @pampam6739 15 дней назад

    А знаете ли вы примеры использования **kwargs, кроме того, где именованные аргументы передаются в функцию по типу number="662266", name="Alice"?
    Я просто не понимаю, как ещё это можно использовать, и мб даже стоит на эту тему видео запилить, так как этот вопрос ранее и мне задавали, то есть не у одного меня он стоит

    • @ITPro-ei8cs
      @ITPro-ei8cs  12 дней назад

      нет, к сожалению понля, что не знаю:)) спасибо за вопрос:)

  • @user_sir_Alex_
    @user_sir_Alex_ 2 месяца назад +1

    опечатка в названии функции update, в видео - udpate

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад +1

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

  • @dmytromykhailiuta
    @dmytromykhailiuta Месяц назад

    Все понятно кроме одного, почему переменая а не ссылка. В С переменная, так как изменяется значение, указатель не меняется.

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      хм. возможно что бы согласовать терминологию с другими языками.

  • @f1n1st13
    @f1n1st13 2 месяца назад

    подписка

  • @mishakhachikyan8181
    @mishakhachikyan8181 2 месяца назад +2

    Очень умное сравнение с коровой.🐂🐂 Совсем Лукашенко 😂

  • @Юра-щ6т8п
    @Юра-щ6т8п 2 месяца назад

    Я не программист. Но мне интересно, как программисты, вне зависимости от языка, или для языка, создают готовые оконные компоненты - классы, типа кнопки, прокрутки, текстбоксы со всеми свойствами и т.д ? Поясню что я имею ввиду. Меня не интересует готовые строчки кода в языках (С#, С++, Python, Java, и т.д), где написав их, описав их свойства, я получу тот или иной ГОТОВЫЙ компонент (кнопка. окно). То есть, в этих языках написал строчку кода, и тебе всё САМО "нарисовалось". Меня НЕ ЭТО интересует. Меня интересует как "нарисованное".(ну хотя бы с помощью win32 api, или ещё чем)..как к примеру, некая прямоугольная область на экране, становиться кнопкой ? Как в неё задаются свойства, события ? Или же как "нарисованная" чёрточка становиться мигающим курсором, и как для всех этих объектов создаётся СИНТАКСИС, для того или иного языка. Как "рисуют" и чем ? Какими "инструментами" ? Тобишь меня интересует та часть айсберга, которая в воде. Даже можно так выразиться - КАКОВЫ ЭТАПЫ РАЗРАБОТКИ того или иного компонента в языке (неважно в каком), от "рисования" до Синтаксиса ? И как "это", нечто новое, связать с компилятором ?

    • @ITPro-ei8cs
      @ITPro-ei8cs  2 месяца назад

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

    • @alexjuly7097
      @alexjuly7097 2 месяца назад

      Не ручаюсь за 100% точность, но думаю примерно так: в момент клика мыши ОС, зная положение курсора, передает сигнал о нажатии активной программе, программа так же зная положение курсора определяет на каком графическом элементе был произведен клик (к слову, это не обязательно кнопка). Тут, ясное дело, что программа работает с каким-то графическим фреймворком, и программный объект такого фреймворка, представляющий(отвечающий) за этот графичесий элемент, получает соответствующий сигнал(событие) - например, левый клик мыши и обрабатывает уже в соответствии с бизнес-логикой, которую написал программист (мы). Часть элементов, например, кнопка закрытия программы скорее всего не потребует вручную писать код завершения приложения.

    • @xintreavideo
      @xintreavideo Месяц назад

      Чтобы это понять, вам нужно самому написать графическую среду без использования сторонних библиотек. Пройти этап переключения с текстового режима хотя бы на графический фрейм-буфер, и начать в нем рисовать точки путем записывания нужных байт в нужные адреса. Затем добавить возможность рисования линий, прямоугольников, шрифтов. Затем написать расшифровщик графических форматов чтобы иконки выводить. Сделать подсистему опроса у железа движения указателя мыши, переводить эти данные в координаты. Отображать по координатам указатель мыши. Потом разработать систему, которая будет помнить каждый объект на экране, координаты его прямоугольника, глубину размещения. При клике мыши, сравнивая эти данные, можно понять, по какому объекту кликнули. Далее нужна подсистема отрисовки/перерисовки, которая правильно перерисовывает объекты на экране при действиях с ними, как минимум на основе пересекающихся прямоугольных областей, чтобы весь экран не перерисовывать. Ну и так далее.

    • @Юра-щ6т8п
      @Юра-щ6т8п Месяц назад

      @@xintreavideo Благодарю за ответ. Мне как раз таки вся эта "изнанка" интересна. А вы какую литературу посоветуете почитать на эту тему, или какие источники в интернете, мне помогут по подробней в эту тему углубиться ?

    • @xintreavideo
      @xintreavideo Месяц назад

      @@Юра-щ6т8п , так нету такой литературы. За каждым предложением стоит изучение нескольких книг по своей тематике и технической документации. На русском языке информации крайне мало, поэтому надо знать английский на уровне нейтива. Плюс надо по-сути заниматься интернет-археологией чтобы что-то внятное и редкое найти. Плюс если вы хотите заниматься всем легально, приготовьте крупную сумму, потому что официальная документация, особенно на железо, в свободном виде не доступна. Либо будьте готовы пиратить. Да и книжки будут не дешёвыми. Кроме того, сейчас практически нет специалистов, которые бы во всем этом разбирались. Каждый знает свою полянку и не более того.

  • @АлександрК-э7м4в
    @АлександрК-э7м4в Месяц назад

    Ну это же идиотство. Зачем при простой арифметической операции без изменения типа создавать новый объект? Это сильно снижает производительность. Видимо, разработчики пайтона не дружат с головой. Не только синтаксис этого языка откровенно идиотский, но и программная реализация.

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад +1

      🤷‍♂️. Хорошо что есть другие языки, а у нас есть выбор :)

    • @SklerozRu
      @SklerozRu Месяц назад +1

      Это Ваше восприятие, не более того.
      Многие вещи снаружи кажутся элементарными или идиотскими, пока не углубишься.
      А Вы попробуйте. Свой интерпретатор своего языка сделать. Расскажете потом об открытиях.

    • @АлександрК-э7м4в
      @АлександрК-э7м4в Месяц назад

      @@SklerozRu , я что, больной? Чтобы сделать нормальный интерпретатор современного ЯП потребуется целый институт программистов. А писать аналоги разных пайтонов "на коленке" у меня нет никакого желания.

  • @ОТЗИОТЗИ
    @ОТЗИОТЗИ Месяц назад +1

    5:18.
    Справедливо только для диапазона -5..256, ибо эти числа храняться в памяти постоянно.
    employees = 123456
    id(123456) => 2612696004240
    id(employees) => 2612696004752

    • @ITPro-ei8cs
      @ITPro-ei8cs  Месяц назад

      Ха, прикол. Получается этот пример работает только для этого диапазона, так как для других литералов даже для аргумента в id() создается новый объект с таким же значением.
      Выходит для более общего случая требуется ещё одна переменная для этого же объекта типа emploees = с = 123456, и уже относительно их id(с) и id(emploees) рассматривать, как менятся адрес.
      Спасибо за уточнение! очень интересно!:)