Уведомления

Группа в Telegram: @pythonsu

#1 Июль 20, 2021 07:17:40

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

FishHook
Спасибо огромное за уточнение. В описании для топикстартера я не стала подробнее, чтобы не усилить имеющуюся кашу. Итак, про виртуальное окружение ему лишнее сейчас.

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

1) Интерпретаторов много. Стандартным является CPython
2) В стандартной установке python я получаю:
- интерпретатор;
- IDLE;
- документацию;
- tkinter.
Особенности:
- для windows, кажется c версии 3.5, появился запускающий модуль;
- для некоторых версий Linux библиотека tkinter не является стандартным устанавливаемым компонентом.

3) Интерпретатор python имеет встроенный REPL он же интерактивный интерпретатор с gui (спасибо курсу от MIT на eDx за знакомство с REPL python)

4) Хотя в статьях и книгах пишут, что python относится к интерпретируемым ЯП, но на самом деле у python динамическая компиляция и результат этой компиляции получаем не машинный код, который интерпретируется/выполняется непосредственно процессором. У python это происходит в PVM (python virtual machine), PVM является частью интерпретатора.

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

6) Когда пользователь запускает скрипт, интерпретатор автоматически осуществляет подготовительные процессы (чтение аргументов запуска, переменных среды и что-то еще, я не помню), а затем автоматически выполняет 4 процесса, :
- разбор на опознаваемые группы (токенизация);
- проверка форматирования и синтаксический анализ (парсинг). На этом этапе прервется запуск, если проблема в синтаксисе;
- компиляция в промежуточный платформонезависимый код;
- выполнение в виртуальной машине (интерпретация).

7) Если у процесса есть разрешение на запись, то python хранит скомпилированный в байт-код результат в .pyc файлах, как вы и писали. Так же автоматически произведет компиляцию заново и перезапишет pyc, если я внесу изменения в исходный файл .py

Хотя я могу все это пересказывать словами, но знаю очень поверхностно. Токенизация, парсинг, компиляция и так далее все равно многое для меня сейчас выглядят как: “Магия, магия и еще раз магия”, потому что у меня сейчас низкий уровень знаний и умений













Офлайн

#2 Июль 20, 2021 07:37:54

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

Vadim123
А есть Visual Stidio с питоном?
Я уже хз, что вы имеете ввиду под этими словами. Да в Visual Studio IDE есть анализатор кода для python:
https://visualstudio.microsoft.com/ru/vs/features/python/

Или вы опять про интерпретатор python встроенный думаете?


py.user.next
У него там Лутц бесплатный типа и ссылка ведёт на Google Drive
А вот официальная ссылка
https://www.oreilly.com/library/view/learning-python-5th/9781449355722/
Лутц такой заморочился над книжкой, пошёл, проплатил издание её в издательстве, а потом с доброй душой стал раздавать её бесплатно всем.
упс, не знала, что Лутц там украденный.
Я именно с python.org брала инфу.
Спасибо, что поправили!

Офлайн

#3 Июль 20, 2021 13:37:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

Ocean
Часто используют на мой взгляд некорректную терминологию, и разделяют языки на “компилируемые” и “интерпретируемые”, что есть глупости. Я для себя вижу это так. Компьютер - это инструмент моделирования реальности. Бухгалтерская программа, это модель реального процесса учета товарно-материальных ценностей, например. Ценность компьютера в том, что с его помощью можно создавать модели реально несуществующих вещей. Например, браузер, не имеет какого-то очевидного материального аналога. Тем не менее, мы имеем нечто цельное, что имеет набор уникальных свойств, и мы называем это браузером. Мы можем создавать модели вполне конкретных предметов, например автомобиля, и с некоторыми ограничениями мы можем использовать модель автомобиля для каких-то своих целей, например устраивать на нем гонки, без опасности разбиться. Мысль, к которой я подвожу такова - мы можем построить модель физически неосуществимого автомобиля, и по прежнему его использовать для наших целей. В жизни вряд ли возможно построить автомобиль с ядерным реактором на борту, разгоняющийся до 0,9 скорости света. А смоделировать такую машину можно вполне и более того устраивать на ней гонки. Так вот. Питон и куча других интерпретаторов, это модель несуществующего процессора. Построить такой процессор в железе было бы слишком дорого и бессмысленно, потому что он был бы медленнее обычного x86, но сделать виртуальную машину - почему бы и нет? А в остальном, все то же самое. Язык вполне себе компилируется. Только компилируется в машинный код виртуальной машины, а не реальной. Вся разница.



Отредактировано FishHook (Июль 20, 2021 14:01:05)

Офлайн

#4 Июль 20, 2021 21:15:55

PEHDOM
Зарегистрирован: 2016-11-28
Сообщения: 2196
Репутация: +  294  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

Vadim123
А есть Visual Stidio с питоном? Как вам эта среда разработки?
Считайте что есть ссылку вам уже Ocean дала выше.
ЗЫ сам не потльзовался, пользовался VSCode под линуксом в качестве IDE для пайтона, в принципе неплохо, хотя и на богомерзком електроне.



==============================
Помещайте код в теги:
[code python][/code]
Бериегите свое и чужое время.

Отредактировано PEHDOM (Июль 20, 2021 21:17:20)

Офлайн

#5 Июль 21, 2021 15:43:03

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

FishHook
Так вот. Питон и куча других интерпретаторов, это модель несуществующего процессора. Построить такой процессор в железе было бы слишком дорого и бессмысленно, потому что он был бы медленнее обычного x86, но сделать виртуальную машину - почему бы и нет? А в остальном, все то же самое. Язык вполне себе компилируется. Только компилируется в машинный код виртуальной машины, а не реальной. Вся разница.
Спасибо большое, что все по полочкам.
А что про это порекомендуете почитать, чтобы еще глубже вникнуть и разобраться как работает интерпретатор и виртуальная машина питона?

Офлайн

#6 Июль 21, 2021 16:29:11

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

Ocean
К сожалению, по внутренней кухне питона информации крайне мало, даже система команд толком нигде в официальных документах не описана. Я знаю только одно детальное описание, как это работает
https://leanpub.com/insidethepythonvirtualmachine/read, но пробраться через него довольно сложно, для меня по крайней мере



Офлайн

#7 Июль 21, 2021 18:02:59

Ocean
Зарегистрирован: 2021-03-14
Сообщения: 131
Репутация: +  9  -
Профиль   Отправить e-mail  

Вопрос по PyCharm

FishHook
о, спасибо!)
Да, я тоже эту грызть пыталась. Она у меня в конспекте в подборке. Подумала, что мне рано еще, потому что почти все непонятно
Я вот эту читала и разбирала и отсюда брала в основном сведения про интерпретатор и из Лутца.

Благодаря py.user.next уже узнала, что не все статьи в бложиках содержат нормальную и полезную информацию. Я так начиталась ереси про docstringи и py.user.next помог понять что к чему )

Теперь поняла, что надо умных людей на форуме спрашивать и черпать из хороших проверенных источников. Дури у меня в своей голове хватает) Куда мне еще чья-то.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version