Как выйти из питона в командной строке
Перейти к содержимому

Как выйти из питона в командной строке

  • автор:

Как выйти из интерактивного режима python?

Windows 10 командная строка.
Команда python запускает интерактивный режим.
Какая команда его завершает?

Лучший ответ

Д ГайУченик (143) 7 лет назад

спасибо помогло

Остальные ответы

gettegУченик (207) 2 года назад

чувак спасибо)

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Установка и запуск Python3 на Windows и MAC OS

Прежде, чем приступить к занятиям, нужно выполнить подготовительную работу, которая нужна, чтобы начать программировать на Python.
В частности, нужно установить интерпретатор Python в вашей операционной системе и проработать цикл написания, сохранения и запуска программы. В качестве программы для тренировки мы возьмем одну строчку кода – print(‘Hello, Python’)

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

Установка интерпретатора Python

Внимание! Мы будем изучать Python3, поэтому устанавливать нужно Python3.

Шаг1. Проверить, установлен ли Python3

Прежде всего нужно проверить, установлен ли Python3 на Вашем компьютере. Для этого в командной строке наберите

>python3

Windows и другие:

>python

Подсказка:
1. Если вы не знаете, как попасть в командную строку –смотрите здесь.
2. В Windows в качестве альтернативы командной строке можно использовать PowerShell

Подготовка к курсу-1

Если Python установлен, то вы увидите что-то вроде этого

Вы увидите версию установленного Python. Если это версия 3.x– то ничего делать не нужно, можно сразу перейти к установке редактора.

Внимание! Клавиша ESC в командной строке не работает. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.

Шаг 2. Установка Python3

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

Для Windows используйте эту инструкцию
Для MAC OS X – загрузка с официального сайта
Внимание! На Маке предустановлен python 2.x. Относящиеся к нему файлы и библиотеки находятся в /System/Library/Frameworks/Python.framework и /usr/bin/python. Их нельзя удалять или модифицировать, так как они используются в некоторых приложениях Apple. У вас будет две версии Python, и об этом нужно помнить.

Шаг 3. Проверить, что Python установлен и работает

После установки убедитесь, что Python установлен – в командной строке набираем

>python3

Windows и другие:

>python

Теперь точно вы должны увидеть что-то вроде этого

Подготовка к курсу-1

Это означает, что система готова и ожидает ваших команд.

В командной строке набираем

>>>print(‘Hello, Python’)

Внимание! В начале пробела быть не должно – иначе интерпретатор выдаст ошибку.

и нажимаем Enter. В ответ интерпретатор должен напечатать тот текст, который указан в кавычках, в данном случае это Hello, Python

Подготовка к курсу-2

Итак, только что вы написали свою первую программу на Python и сделали первый шаг к тому, чтобы стать программистом!

Заодно вы увидели, что такое интерактивный режим – в этом режиме пользователь сообщает системе, что нужно сделать, а система немедленно отвечает.

Не забываем выйти из интерпретатора Python. Для выхода из интерпретатора Python в командной строке набираем quit() или exit(), обязательно со скобками. Либо просто СNTR+C на Windows, СNTR+D – на Маке.

Установка и настройка редактора

Интерпретатор дает возможность привести написанный код в исполнение, а текстовый редактор позволяет нам писать код, выполняя знакомые нам задачи – такие как поиск, замена, вырезка, вставка текста.

У файлов с кодом Python должно быть расширение .py. Намример, mycode.py

Существует достаточно большое количество разнообразных редакторов и IDE (Integrated Development Environment), и со времен вы определитесь, что использовать.

Выбор редактора/IDE – дело индивидуальное, самое главное – чтобы в нем было удобно и комфортно работать вам.

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

Новичкам рекомендуем начать с “легких” редакторов. Лёгкие редакторы – быстрые, простые и мгновенно стартуют. На практике «лёгкие» редакторы могут обладать большим количеством плагинов, так что граница между IDE и «лёгким» редактором размыта.

  • Sublime Text (кросс-платформенный, shareware)
  • Atom (кросс-платформенный, бесплатный)
  • SciTe простой, легкий и очень быстрый (Windows, бесплатный)
  • Notepad++ (Windows, бесплатный).

В настройке редактора для Python важны два момента – установить синтаксис Python и установить табуляцию, равную 4-м пробелам. Это очень важный момент для Python3, так как Python3 не доускает смешение табуляций и пробелов.
Если нужно, вы можете воспользоваться подсказками по настройке NotePad и Sublime.

  • Sublime Text(все платформы) – базовая настройка для Python
  • NotePad(толькоWindows) – базовая настройка для Python

После установки редактора создайте файл, содержащий одну строку:

print(‘Hello, Python’)

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

Сохраняем файл на диске (вы же организовали себе место для хранения python-файлов?). Файл можно назвать как угодно, главное, чтобы расширение было .py. Например, hello.py

Запуск Python

Ну что же, остается выполнить код, который находится в файле.

1. Запуск из IDLE

Самый простой и удобный способ для начинающих запускать Python – через IDLE (Integrated DeveLopment Environment), которая входит комплект поставки Python. Она может использоваться на многих платформах, среди которых есть и Windows, и Mac OS.

Запуск на Windows.

Способ 1. Выбираем нужный файл. Нажимаем правую кнопку мыши и видим

Windows-python-idle-1

Выбрав Edit with IDLE, попадаем в IDLE:

Windows-python-idle

Как видите, запустить программу при помощи F5. Здесь же можно что-то быстренько подправить, все изменения сохранятся. Если файл параллельно открыт в редакторе, то редактор вас предупредит о том, что в файле были сделаны изменения и предложит их сохранить.

Способ 2.

В панели Widndows находим Python, открываем выпадающее меню и выбираем Python IDLE:

Windows-python-idle

В этом случае откроется терминал. Нужный файл для запуска выбираем через меню File>Open и запускаем файл, выбрав в меню Run>Run Module или нажав F5.

Запуск на MAC OS

Способ 1.

В Finder выбираем нужный файл и дважды кликаем по нему (аналог правого щелчка мыши на Windows). Откроется IDLE:

Mac-python-idle

На Маке shell и редактор открываются в разных окнах. Код запускается из меню Run>Run Module или по нажатию Fn+F5.

Способ 2.

На Launcpad находим IDLE

Mac-python-idle

В этом случае откроется терминал. Нужный файл для запуска выбираем через File>Open и запустить его, выбрав в меню Run>Run Module или нажав FN+F5.

При использовании способа 1 открывается редактор, а при использовании способа 2 – интерпретатор Python

2. Запуск из командной строки
  • Открываем командную строку.
  • Переходим в директорию, где расположен файл, который нужно запустить.
  • Запускаем файл

Windows:

>python ИМЯФАЙЛА.py

MAC OS:

>python3 ИМЯФАЙЛА.py

Как правило, программу Python можно запускать непосредственно из IDE. Как это сделать – зависит от интерфейса конкретной IDE, все они интуитивно понятны и выполнение кода не вызывает никаких сложностей.

2. Использование интерпретатора Python¶

Интерпретатор Python после установки располагается, обычно, по пути /usr/local/bin/python3.8 — на тех компьютерах, где этот путь доступен. Добавление каталога /usr/local/bin к пути поиска Unix-шелла позволит запустить интерпретатор набором команды

python3.8

прямо из шелла. [1] Поскольку выбор каталога, в котором будет обитать интерпретатор, осуществляется при его установке, то возможны и другие варианты — посоветуйтесь с вашим Python-гуру или системным администратором. (Например, путь /usr/local/python тоже популярен в качестве альтернативного расположения.)

На компьютерах с Windows, на которых установлен Python из Microsoft Store будет доступна команда: python3.8 . Если у вас установлен py.exe запускальщик , вы можете использовать py команду. Другие способы запуска Exursus: задание переменных среды см. в разделе Python.

При наборе символа конца файла ( Control-D в Unix, Control-Z Windows) в ответ на основное приглашение интерпретатора, последний будет вынужден закончить работу с нулевым статусом выхода. Если это не сработает — вы можете выйти из интерпретатора путём ввода следующей команды: quit() .

Функции редактирования строк интерпретатора включают интерактивное редактирование, замену истории и завершение кода в системах, поддерживающих библиотеку GNU Readline.Самый быстрый, наверное, способ проверить, поддерживается ли расширенное редактирование командной строки, заключается в нажатии Control-P в ответ на первое полученное приглашение Python. Если вы услышите звуковой сигнал, значит вам доступно редактирование командной строки; Введение в ключи см. в Приложении Интерактивное редактирование ввода и подстановка из истории . Если на ваш взгляд ничего не произошло или отобразился символ ^P — редактирование командной строки недоступно — удалять символы из текущей строки возможно будет лишь использованием клавиши Backspace.

Интерпретатор ведёт себя сходно шеллу Unix: если он вызван, когда стандартный ввод привязан к устройству tty — он считывает и выполняет команды в режиме диалога; будучи вызванным с именем файла в качестве параметра или с файлом, назначенным на стандартный ввод — он читает и выполняет сценарий из этого файла.

Другой способ запустить интерпретатор — python -c command [arg] . , — при её использовании поочередно выполняются инструкции(-ция) из command (как при использовании опции -c Unix-шелла). В связи с тем, что инструкции Python часто содержат пробелы или другие специальные для шелла символы, рекомендуется полностью заключать command в одинарные кавычки.

Некоторые модули Python оказываются полезными при использовании их в качестве сценариев. Они могут быть запущены в виде командой python -m module [arg] . , — таким образом исполняется исходный файл модуля module (как произошло бы, если бы вы ввели его полное имя в командной строке).

При использовании файла сценария иногда полезно иметь возможность запустить сценарий и затем войти в интерактивный режим. Это может быть сделано через указание параметра -i перед именем сценария.

Все опции командной строки описаны в Командная строка и среда .

2.1.1. Передача параметров¶

В случае, если интерпретатору известны имя сценария и дополнительные параметры, с которыми он вызван, все они передаются сценарию в переменной argv модуля sys , представляющей собой список строк. Вы можете получить доступ к этому списку, выполнив import sys . Длина списка — минимум, единица; если не переданы ни имя сценария, ни аргументы — то sys.argv[0] содержит пустую строку. Когда в качестве имени сценария передан ‘-‘ (означает стандартный ввод), sys.argv[0] устанавливается в ‘-‘ . Если используется директива -c command, то sys.argv[0] устанавливается как ‘-c’ . Когда используется -m module , то sys.argv[0] устанавливается равным полному имени модуля по расположению. Опции, обнаруженные после сочетаний -c command или -m module не обрабатываются интерпретатором Python, но остаются в переменной sys.argv , чтобы обеспечить возможность отслеживания в самой команде или в модуле.

2.1.2. Интерактивный режим¶

Когда команды считываются из tty, интерпретатор находится в интерактивном режиме. В этом режиме запрашивается следующая команда с основного приглашения, обычно три знака больше ( >>> ); в то же время, для продолжающих строк выводится вспомогательное приглашение, по умолчанию три точки ( . ). Перед выводом первого приглашения интерпретатор отображает приветственное сообщение, содержащее номер его версии и пометку о правах копирования:

$ python3.8 Python 3.8 (default, Sep 16 2015, 09:25:04) [GCC 4.8.2] on linux Type "help", "copyright", "credits" or "license" for more information. >>> 

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

>>> the_world_is_flat = True >>> if the_world_is_flat: . print("Be careful not to fall off!") . Be careful not to fall off! 

Подробнее об интерактивном режиме смотрите Интерактивный режим .

2.2. Интерпретатор и его окружение¶

2.2.1. Кодировка исходных файлов¶

По умолчанию, исходники Python считаются созданными в кодировке UTF-8. В этой кодировке в строковых литералах, идентификаторах и комментариях могут быть использованы символы большинства языков мира — хотя стандартная библиотека Python использует только символы ASCII для именования идентификаторов — и этому соглашению должен следовать любой переносимый код. Для корректного отображения всех этих символов, ваш редактор должен опознавать файл как закодированный в UTF-8 и должен использовать шрифт, который содержит все символы, используемые в файле.

Для объявления кодировки, отличной от кодировки по умолчанию, используется специальная строка комментария которую следует добавить в качестве первой строки файла. Синтаксис выглядит следующим образом:

# —— coding: encoding —

Где encoding является одной из допустимых в codecs , поддерживаемых Python.

Например, если ваш текстовый редактор не поддерживает кодировку файлов UTF-8 и настаивает на какой-либо другой кодировке, скажем, Windows-1252, можно написать:

# —— coding: cp1252 —

Исключение из правила если первая строка в исходном коде начинается с UNIX «shebang» строки . В этом случае объявление кодировки должно быть добавлено в качестве второй строки файла. Например:

#!/usr/bin/env python3 # -*- coding: cp1252 -*- 
[1] В опереционных системах семейства Unix, интерпретатор Python 3.x по-умолчанию не запускается по имени python , чтобы он не конфликтовал с уже установленным Python 2.x.

Завершение программы в Python

Однако, там не было объяснения какой метод лучше. Какой метод является наиболее «безаварийным»? И заодно: есть ли в Python понятие Autocloseable объектов? Если я сделаю ранее завершение программы, нужно ли мне будет закрывать файлы и т.д.?

Отслеживать
7,822 13 13 золотых знаков 25 25 серебряных знаков 55 55 бронзовых знаков
задан 17 окт 2015 в 16:11
1,347 4 4 золотых знака 17 17 серебряных знаков 34 34 бронзовых знака
17 окт 2015 в 16:23
Спасибо! Лучшим решением является использование sys.exit()
17 окт 2015 в 16:28
на счет второго: лучше закрывать/завершать все операции перед завершением программы
17 окт 2015 в 16:32

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Короткий ответ:
Лучше использовать sys.exit()

Механизм завершения процесса в Python реализован через бросание исключения SystemExit , таким образом можно просто создать подобное исключение и программа завершится:

raise SystemExit # или даже передать число -- код ошибки завершения программы raise SystemExit(1) 

Функция exit и аналогичная ей quit созданы для удобства работы в интерактивном режиме и их не рекомендуется использовать внутри скриптов:

They are useful for the interactive interpreter shell and should not be used in programs.

По факту они также просто поднимают исключение, и при попытке вызова без скобок напишут подсказку о правильном способе выхода из интерпретатора:

>>> quit Use quit() or Ctrl-D (i.e. EOF) to exit >>> exit Use exit() or Ctrl-D (i.e. EOF) to exit 

Использовать sys.exit стоит потому, что эта функция лежит в стандартном модуле и будет всегда там доступна. Также это довольно явный способ выразить своё желание завершить программу.

Есть также дополнительный метод для немедленного завершения программы: os._exit . У него довольно специфическая область применения, и там же есть замечание:

The standard way to exit is sys.exit(n)

Т.е. здесь даётся подтверждение того, что стандартный способ завершения программы — это вызов sys.exit .

Функция os.abort , упомянутая вами, использует механизм сигналов процессу. Конкретно при вызове этой функции будет передан сигнал SIGABRT , что в linux приведёт к завершению программы и созданию дампа памяти процесса. Подобное завершение рассматривается операционной системой как аварийное, поэтому не стоит использовать его для безаварийного завершения приложения.

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

with open('filename') as my_file: print(my_file.read()) 

Этот код откроет файл, напечатает его содержимое на экран и закроет файл автоматически, даже если возникнет исключение при его печати.

Для классов, которые не приспособлены для работы с with есть функция closing в библиотеке contextlib . Из документации:

with closing(.open()) as f:

is equivalent to this:

f = .open() try: finally: f.close() 

Вот небольшой пример работы этой функции:

import contextlib class Closeable: def close(self): print('closed') with contextlib.closing(Closeable()): pass # печатает closed 

Теперь небольшое отступление о том, почему стоит использовать конструкцию with .

Известно, что программа завершится от любого необработанного исключения, а не только от SystemExit . Таким образом, если в вашем коде используются какие-то ресурсы, которые требуется правильным образом закрывать перед завершением работы, нужно оборачивать работу с ними в блоки try . finally . .

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

Так как выход из программы — это всего лишь брошенное исключение, то и в случае использования функции sys.exit закрытие открытых в операторе with ресурсов произойдёт корректно:

with contextlib.closing(Closeable()): sys.exit() # напечатает closed 

Вы можете писать также и свои классы, предоставляющие ресурсы или классы, оборачивающие другие, которые нужно уметь закрывать автоматически. Для этого используются методы __enter__ и __exit__ .

  1. Похожий вопрос с англоязычного StackOverflow
  2. Функции, добавляемые модулем site
  3. Документация по конструкции with
  4. Документация по функции closing
  5. Документация по исключению SystemExit
  6. Документация по функции os._exit
  7. Документация по функции sys.exit
  8. Документация по функции os.abort
  9. Описание системного сигнала SIGABRT

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *