Что происходит, когда я пишу print('Something')?
Работает ли интерпретатор напрямую с системными средствами ввода-вывода, или он использует какой-то системный API, который выдает информацию о том, что что-то нужно вывести в консоль?
Аналогично для ввода. Если я вызову функцию input(), то читать входные значения будет сам интерпретатор python, либо он снова делегирует эту работу какому-то системному API, который будет оборачивать ввод.
Я знаю, что python написан на языке C (по крайней мере, его основная реализация). Получается, что именно язык Си внутри интерпретатора отвечает за ввод/вывод?
Все мои попытки найти ответ сводятся к статьям, где мне рассказывают, что в input() нужно нажать кнопку с клавиатуры, и функция print() что-то напечатает в консоли. Я уже знаю это, я хочу знать, что происходит на уровне ниже.
Да, я понимаю, что могу покопаться в исходниках и найти там эти данные, но мой уровень экспертизы в чтении исходников на С равен 0, я задал вопрос в надежде, что кто-то уже открывал этот "ящик Пандоры" и знает ответ. Любопытство движет мной. Я знаю, что все языки сценариев не имеют собственного ввода и вывода. И я хотел узнать, что это относится и к языку Python.






Когда вы пишете print('Something'), вот что происходит на более низком уровне:
print('Something'), он сначала оценивает выражение в круглых скобках, которое в данном случае является просто строкой, 'Something'.Точно так же, когда вы используете input():
input(), он делает паузу
выполнение программы и ждет, пока пользователь введет некоторый текст.Таким образом, когда вы взаимодействуете с интерпретатором Python, используя таких функций, как print() и input(), сам интерпретатор полагается на системные API, предоставляемые операционной системой для обработки фактических операции ввода и вывода. Эта абстракция позволяет Python работать бесшовно на разных платформах и средах.
Пожалуйста! Я рад, что смог тебе помочь. Если у вас есть еще вопросы, не стесняйтесь спрашивать.
Python имеет открытый исходный код, поэтому исходный код доступен для просмотра. Это может быть немного ошеломляющим для новичка, особенно для того, кто плохо знает C. Итак, пожалуйста, скажите нам, почему вы задаетесь этим вопросом? Есть ли у вас основная проблема, которую, по вашему мнению, решит это знание? Тогда спросите об этом напрямую. Или это простое любопытство? Любопытство не является неправильным, но, пожалуйста, укажите это в своем вопросе. И даже если это просто из любопытства, зачем тебе знать? Быть хорошим программистом на Python не означает, что вам нужны эти детали.