Как выйти из shell python

от admin

Exiting from python Command Line

Usually when you type exit , you would want to exit the program. Why does the interpreter give me the above error when it knows I am trying to exit the command line? Why doesn’t it just exit? I know it doesn’t matter and its a silly question but I am curious.

12 Answers 12

This works for me, best way to come out of python prompt.

In my python interpreter exit is actually a string and not a function — ‘Use Ctrl-D (i.e. EOF) to exit.’ . You can check on your interpreter by entering type(exit)

In active python what is happening is that exit is a function. If you do not call the function it will print out the string representation of the object. This is the default behaviour for any object returned. It’s just that the designers thought people might try to type exit to exit the interpreter, so they made the string representation of the exit function a helpful message. You can check this behaviour by typing str(exit) or even print exit .

When you type exit in the command line, it finds the variable with that name and calls __repr__ (or __str__ ) on it. Usually, you’d get a result like:

But they decided to redefine that function for the exit object to display a helpful message instead. Whether or not that’s a stupid behavior or not, is a subjective question, but one possible reason why it doesn’t «just exit» is:

Suppose you’re looking at some code in a debugger, for instance, and one of the objects references the exit function. When the debugger tries to call __repr__ on that object to display that function to you, the program suddenly stops! That would be really unexpected, and the measures to counter that might complicate things further (for instance, even if you limit that behavior to the command line, what if you try to print some object that have exit as an attribute?)

Как выйти из shell python

Usually when you type exit , you would want to exit the program. Why does the interpreter give me the above error when it knows I am trying to exit the command line? Why doesn’t it just exit? I know it doesn’t matter and its a silly question but I am curious.

12 Answers 12

This works for me, best way to come out of python prompt.

In my python interpreter exit is actually a string and not a function — ‘Use Ctrl-D (i.e. EOF) to exit.’ . You can check on your interpreter by entering type(exit)

In active python what is happening is that exit is a function. If you do not call the function it will print out the string representation of the object. This is the default behaviour for any object returned. It’s just that the designers thought people might try to type exit to exit the interpreter, so they made the string representation of the exit function a helpful message. You can check this behaviour by typing str(exit) or even print exit .

When you type exit in the command line, it finds the variable with that name and calls __repr__ (or __str__ ) on it. Usually, you’d get a result like:

But they decided to redefine that function for the exit object to display a helpful message instead. Whether or not that’s a stupid behavior or not, is a subjective question, but one possible reason why it doesn’t «just exit» is:

Suppose you’re looking at some code in a debugger, for instance, and one of the objects references the exit function. When the debugger tries to call __repr__ on that object to display that function to you, the program suddenly stops! That would be really unexpected, and the measures to counter that might complicate things further (for instance, even if you limit that behavior to the command line, what if you try to print some object that have exit as an attribute?)

Первые шаги¶

Давайте посмотрим, как создать традиционную программу «Hello World» на Python. Это научит вас писать, сохранять и выполнять программы на Python.

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

Использование командной строки интерпретатора¶

Откройте окно терминала (как было описано в главе Установка) и запустите интерпретатор Python, введя команду python3 и нажав Enter .

Пользователи Windows могут запустить интерпретатор в командной строке, если установили переменную PATH надлежащим образом. Чтобы открыть командную строку в Windows, зайдите в меню «Пуск» и нажмите «Выполнить. «. В появившемся диалоговом окне введите «cmd» и нажмите Enter ; теперь у вас будет всё необходимое для начала работы с python в командной строке DOS.

Если вы используете IDLE, нажмите «Пуск» —> «Программы» —> «Python 3.0» —> «IDLE (Python GUI)».

Как только вы запустили python3 , вы должны увидеть >>> в начале строки, где вы можете что-то набирать. Это и называется командной строкой интерпретатора Python.

Теперь введите print(‘Hello World’) и нажмите клавишу Enter . В результате должны появиться слова «Hello World».

Вот пример того, что вы можете увидеть на экране, если будете использовать компьютер с Mac OS X. Информация о версии Python может отличаться в зависимости от компьютера, но часть, начинающаяся с приглашения (т. е. от >>> и далее) должна быть одинаковой на всех операционных системах.

Обратите внимание, что Python выдаёт результат работы строки немедленно! Вы только что ввели одиночный «оператор» Python. print используется для того, чтобы (что неудивительно 1 ) напечатать любое переданное в него значение. В данном случае мы передали в него текст «Hello World», который и был напечатан на экране.

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

Если вы используете IDLE или оболочку GNU/Linux или BSD, вы можете выйти из командной строки интерпретатора нажатием Ctrl-D или введя команду exit() (примечание: не забудьте написать скобки, «()»), а затем нажав клавишу Enter . Если вы используете командную строку Windows, нажмите Ctrl-Z , а затем нажмите клавишу Enter .

Выбор редактора¶

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

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

Одно из самых основных требований — это подсветка синтаксиса, когда разные элементы программы на Python раскрашены так, чтобы вы могли легко видеть вашу программу и ход её выполнения.

Если вы не знаете, с чего начать, я бы порекомендовал воспользоваться программой Komodo Edit, которая доступна для Windows, Mac OS X и GNU/Linux.

Если вы пользуетесь Windows, Не используйте Блокнот — это плохой выбор, поскольку он не обладает функцией подсветки синтаксиса, а также не позволяет автоматически вставлять отступы, что очень важно в нашем случае, как мы увидим позже. Хорошие редакторы, как Komodo Edit, позволяют делать это автоматически.

Опытные программисты, должно быть, уже используют Vim или Emacs. Не стоит даже и говорить, что это два наиболее мощных редактора, и вы только выиграете от их использования для написания программ на Python. Лично я пользуюсь ими обоими для большинства своих программ, и даже написал книгу о Vim. Я настоятельно рекомендую вам решиться и потратить время на изучение Vim или Emacs, поскольку это будет приносить вам пользу долгие годы. Однако, как я уже писал выше, новички могут пока просто остановиться на Komodo Edit и сосредоточиться на изучении Python, а не текстового редактора.

Я повторюсь ещё раз: обязательно выберите подходящий редактор — это сделает написание программ на Python более простым и занимательным.

Для пользователей Vim

Существует хорошее введение в использование Vim как мощного IDE для Python, автор — John M Anderson. Также я рекомендую плагин jedi-vim и мой собственный конфигурационный файл.

Для пользователей Emacs

Существует хорошее введение в использование Emacs как мощного IDE для Python, автор — Ryan McGuire. Также я рекомендую Конфигурацию dotemacs от BG.

Использование программных файлов¶

А теперь давайте вернёмся к программированию. Существует такая традиция, что какой бы язык программирования вы ни начинали учить, первой вашей программой должна быть программа «Привет, Мир!». Это программа, которая просто выводит надпись «Привет, Мир!». Как сказал Simon Cozens 2 , это «традиционное заклинание богов программирования, которое поможет вам лучше изучить язык».

Запустите выбранный вами редактор, введите следующую программу и сохраните её под именем helloworld.py .

Если вы пользуетесь Komodo Edit, нажмите «Файл» —> «Новый» —> «Новый файл», введите строку:

В Komodo Edit нажмите «Файл» —> «Сохранить» для сохранения файла.

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

  • C:\py в Windows
  • /tmp/py в GNU/Linux
  • /tmp/py в Mac OS X

Чтобы создать папку, воспользуйтесь командой mkdir в терминале. Например, mkdir /tmp/py .

Не забывайте указывать расширение файла .py . Например, » file.py «.

В Komodo Edit нажмите «Инструменты» —> «Запуск команды», наберите python3 helloworld.py и нажмите «Выполнить». Вы должны увидеть вывод, показанный на скриншоте ниже.

Но всё-таки лучше редактировать программу в Komodo Edit, а запускать в терминале:

  1. Откройте терминал, как описано в главе Установка.
  2. Перейдите в каталог, в котором вы сохранили файл. Например, cd /tmp/py .
  3. Запустите программу, введя команду python3 helloworld.py .

Вывод программы показан ниже.

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

Если вы получите сообщение об ошибке, введите вышеуказанную программу в точности так, как показано здесь, и запустите снова. Обратите внимание, что Python различает регистр букв, то есть print — это не то же самое, что Print (обратите внимание на букву p в нижнем регистре в первом случае и на букву P в верхнем регистре во втором). Также убедитесь, что перед первым символом в строке нет пробелов или символов табуляции — позже мы увидим, почему это важно.

Читать:
Какая сегодня неделя четная или нечетная 2021

Как это работает

Программа на Python состоит из выражений. В нашей первой программе имеется всего лишь одно выражение. В этом выражении мы вызываем функцию print , которая просто выводит текст ‘Привет, Мир!’ . О функциях мы узнаем в одной из последующих глав, а пока вам достаточно понять, что всё, что вы укажете в скобках, будет выведено на экран. В данном примере мы указали ‘Привет, Мир!’ .

Python никак не обрабатывает комментарии, кроме специального случая в первой строке. Она называется »строка shebang»; когда первые два символа файла с программой — #! , за которыми следует путь к некоторой программе, это указывает вашей Unix-подобной системе, что вашу программу нужно запускать именно в этом интерпретаторе, когда вы »исполняете» её. Это объясняется подробно в следующем параграфе. Помните, что вы всегда можете запустить свою программу на любой платформе, указав интерпретатор напрямую в командной строке, как например, команда python helloworld.py .

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

Исполнимые программы на Python¶

Это касается только пользователей GNU/Linux и Unix, но пользователям Windows тоже будет полезно об этом знать.

Каждый раз, когда нам нужно запустить программу на Python, нам приходится в явном виде запускать python3 foo.py . Но почему бы нам не запускать её точно так же, как и все другие программы? Этого можно достичь при помощи так называемого hashbang.

Добавьте строку, указанную ниже, в самое начало вашей программы:

Теперь ваша программа должна выглядеть так:

Теперь необходимо установить программе атрибут исполнимости, используя команду chmod , а затем выполнить программу.

Команда chmod здесь используется для изменения режима файла 3 добавлением атрибута исполнимости для всех пользователей в системе 4 .

После этого мы можем запускать программу напрямую, потому что наша операционная система запустит /usr/bin/env , который, в свою очередь, найдёт Python 3, а значит, сможет запустить наш файл.

Здесь » ./ » обозначает, что программа находится в текущем каталоге.

Ради интереса можете даже переименовать файл в просто » helloworld » и запустить его как ./helloworld , и это также сработает, поскольку система знает, что запускать программу нужно интерпретатором, положение которого указано в первой строке файла программы.

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

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

Мы можем вывести на экран значение переменной PATH при помощи команды echo , добавив перед именем переменной символ $ , чтобы указать оболочке, что мы хотим получить значение этой переменной. Мы видим, что /home/swaroop/bin — один из каталогов в переменной PATH, где swaroop — это имя пользователя, которое я использую в своей системе. В вашей системе, скорее всего, будет аналогичный каталог для вашего пользователя.

Вы также можете добавить какой-либо каталог к переменной PATH — это можно сделать, выполнив PATH=$PATH:/home/swaroop/mydir , где ‘/home/swaroop/mydir’ — это каталог, который я хочу добавить к переменной PATH .

Этот метод полезен для написания сценариев, которые будут доступны для запуска в любой момент из любого места. По сути, это равносильно созданию собственных команд, как cd или любой другой, которые часто используются в терминале GNU/Linux или приглашении DOS.

Когда речь идёт о Python, слова «программа» или «сценарий (скрипт)» обозначают одно и то же.

Получение помощи¶

Для быстрого получения информации о любой функции или операторе Python служит встроенная функция help . Это особенно удобно при использовании командной строки интерпретатора. К примеру, выполните help(print) — это покажет справку по функции print , которая используется для вывода на экран.

Для выхода из справки нажмите q .

Аналогичным образом можно получить информацию почти о чём угодно в Python. При помощи функции help() можно даже получить описание самой функции help !

Если вас интересует информация об операторах, как например, return , их необходимо указывать в кавычках (например, help(‘return’) ), чтобы Python понял, чего мы хотим.

Резюме¶

Теперь вы умеете с лёгкостью писать, сохранять и запускать программы на Python.

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

Автор восхитительной книги «Beginning Perl» ↩

changemode — англ. «изменить режим» (прим. перев.) ↩

В указанной команде буква «a» взята из слова «all» (англ. «все»), а буква «x» — из слова «execute» (англ. «исполнять») — прим. перев. ↩

Python exit command (quit(), exit(), sys.exit())

Let us check out the exit commands in python like quit(), exit(), sys.exit() commands.

Python quit() function

In python, we have an in-built quit() function which is used to exit a python program. When it encounters the quit() function in the system, it terminates the execution of the program completely.

It should not be used in production code and this function should only be used in the interpreter.

Example:

After writing the above code (python quit() function), Ones you will print “ val ” then the output will appear as a “ 0 1 2 “. Here, if the value of “val” becomes “3” then the program is forced to quit, and it will print the quit message.

You can refer to the below screenshot python quit() function.

Python quit() function

Python exit() function

We can also use the in-built exit() function in python to exit and come out of the program in python. It should be used in the interpreter only, it is like a synonym of quit() to make python more user-friendly

Example:

After writing the above code (python exit() function), Ones you will print “ val ” then the output will appear as a “ 0 1 2 “. Here, if the value of “val” becomes “3” then the program is forced to exit, and it will print the exit message too.

You can refer to the below screenshot python exit() function.

Python exit() function

Python sys.exit() function

In python, sys.exit() is considered good to be used in production code unlike quit() and exit() as sys module is always available. It also contains the in-built function to exit the program and come out of the execution process. The sys.exit() also raises the SystemExit exception.

Example:

After writing the above code (python sys.exit() function), the output will appear as a “ Marks is less than 20 “. Here, if the marks are less than 20 then it will exit the program as an exception occurred and it will print SystemExit with the argument.

You can refer to the below screenshot python sys.exit() function.

Python sys.exit() function

Python os.exit() function

So first, we will import os module. Then, the os.exit() method is used to terminate the process with the specified status. We can use this method without flushing buffers or calling any cleanup handlers.

Example:

After writing the above code (python os.exit() function), the output will appear as a “ 0 1 2 “. Here, it will exit the program, if the value of ‘i’ equal to 3 then it will print the exit message.

You can refer to the below screenshot python os.exit() function.

Python os.exit() function

Python raise SystemExit

The SystemExit is an exception which is raised, when the program is running needs to be stop.

Example:

After writing the above code (python raise SystemExit), the output will appear as “ 0 1 2 3 4 “. Here, we will use this exception to raise an error. If the value of ‘i’ equal to 5 then, it will exit the program and print the exit message.

You can refer to the below screenshot python raise SystemExit.

Python raise SystemExit

Program to stop code execution in python

To stop code execution in python first, we have to import the sys object, and then we can call the exit() function to stop the program from running. It is the most reliable way for stopping code execution. We can also pass the string to the Python exit() method.

Example:

After writing the above code (program to stop code execution in python), the output will appear as a “ list length is less than 5 “. If you want to prevent it from running, if a certain condition is not met then you can stop the execution. Here, the length of “my_list” is less than 5 so it stops the execution.

You can refer to the below screenshot program to stop code execution in python.

python exit command

Difference between exit() and sys.exit() in python

  • exit() – If we use exit() in a code and run it in the shell, it shows a message asking whether I want to kill the program or not. The exit() is considered bad to use in production code because it relies on site module.
  • sys.exit() – But sys.exit() is better in this case because it closes the program and doesn’t ask. It is considered good to use in production code because the sys module will always be there.

In this Python tutorial, we learned about the python exit command with example and also we have seen how to use it like:

  • Python quit() function
  • Python exit() function
  • Python sys.exit() function
  • Python os.exit() function
  • Python raise SystemExit
  • Program to stop code execution in python
  • Difference between exit() and sys.exit() in python

Bijay Kumar MVP

Python is one of the most popular languages in the United States of America. I have been working with Python for a long time and I have expertise in working with various libraries on Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… I have experience in working with various clients in countries like United States, Canada, United Kingdom, Australia, New Zealand, etc. Check out my profile.

Похожие статьи