Введение
Сегодня я хотел бы представить IPython, очень мощный интерпретатор Python. Хотя у самого Python есть собственный интерпретатор, IPython относительно мощнее.
Интерпретатор Python
У Python есть собственный интерпретатор, и мы можем войти в среду интерпретатора Python, введя python в командной строке:
$> python
Python 2.7.15 (default, Oct 2 2018, 11:47:18)
[GCC 4.2.1 Compatible Apple LLVM 10.0.0 (clang-1000.11.45.2)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> site = "www.flydean.com"
>>> site
'www.flydean.com'
>>>
Подсказка интерпретатора python>>>
.
python предоставляет очень полезную справку по командам, мы можем использовать справку, чтобы увидеть команду для использования.
>>> help
Type help() for interactive help, or help(object) for help about object.
В Python3 также предусмотрено автодополнение табуляции:
>>> site
'www.flydean.com'
>>> site.
site.capitalize( site.expandtabs( site.isalpha( site.isprintable( site.lower( site.rindex( site.splitlines( site.upper(
site.casefold( site.find( site.isdecimal( site.isspace( site.lstrip( site.rjust( site.startswith( site.zfill(
site.center( site.format( site.isdigit( site.istitle( site.maketrans( site.rpartition( site.strip(
site.count( site.format_map( site.isidentifier( site.isupper( site.partition( site.rsplit( site.swapcase(
site.encode( site.index( site.islower( site.join( site.replace( site.rstrip( site.title(
site.endswith( site.isalnum( site.isnumeric( site.ljust( site.rfind( site.split( site.translate(
Это очень удобно в использовании.
В дополнение к интерпретатору, который поставляется с Python, существует более мощный интерпретатор, который называется IPython. Давайте посмотрим вместе.
IPython
IPython — очень мощный интерпретатор, обычно он используется с блокнотом Jupyter. В IPython3.X IPython и Jupyter выпускаются вместе как единое целое. Но после IPython 4.X Jupyter был отделен от IPython как отдельный проект.
Использовать IPython легко, просто введите команду IPython:
$> ipython
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 12:04:33)
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: site= "www.flydean.com"
In [2]: site
Out[2]: 'www.flydean.com'
Приглашение IPythonIn [1]:
По сути, команды, поставляемые с Python, можно использовать в IPython.
IPython предоставляет 4 очень полезные команды:
command | description |
---|---|
? | Введение и обзор возможностей IPython. |
%quickref | Quick reference. |
help | Собственная справочная система Python. |
object? | Подробная информация об «объекте», используйте «объект ??» для получения дополнительной информации. |
магическая функция
В IPython есть две волшебные функции, одна из нихLine magics, одинCell magics.
Line magicsПолучите ввод этой строки в качестве ввода функции, поэтому%
начало. иCell magicsМожет получать несколько строк данных, пока вы не введете пустой возврат каретки. да%%
начало.
Например, если мы хотим увидеть использование магической функции timeit, мы можем использоватьObject?
Представлять:
$> In [4]: %timeit?
Docstring:
Time execution of a Python statement or expression
Usage, in line mode:
%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] statement
or in cell mode:
%%timeit [-n<N> -r<R> [-t|-c] -q -p<P> -o] setup_code
code
code...
времяиспользуется для подсчета времени выполнения программы.Давайте посмотрим на использование магии линий и магии ячеек соответственно:
In [4]: %timeit?
In [5]: %timeit range(1000)
199 ns ± 3.8 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
In [6]: %%timeit range(1000)
...: range(1000)
...:
208 ns ± 12.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
На самом деле, если это просто магия Line, мы можем опустить предшествующий %, но для магии Cell его нельзя опустить.
In [7]: timeit range(1000)
200 ns ± 4.03 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)
Общие магические функции следующие:
- Связанный код:
%run
,%edit
,%save
,%macro
,%recall
, etc. - Связанная среда оболочки:
%colors
,%xmode
,%automagic
, etc. - Другие функции:
%reset
,%timeit
,%%writefile
,%load
, or%paste
.
запускай и редактируй
использовать%run
Вы можете легко запускать внешние скрипты Python.
In [8]: run?
Docstring:
Run the named file inside IPython as a program.
Usage::
%run [-n -i -e -G]
[( -t [-N<N>] | -d [-b<N>] | -p [profile options] )]
( -m mod | file ) [args]
run имеет несколько очень полезных параметров, например, -t можно использовать для подсчета времени работы программы. -d можно использовать для среды отладки, -p можно использовать для анализа профилировщика.
использовать%edit
Можно редактировать несколько строк кода, и после выхода IPython выполнит их.
Если вы не хотите выполнять его немедленно, вы можете добавить параметр -x.
Debug
можно использовать%debug
или%pdb
Чтобы войти в среду отладки IPython:
In [11]: debug
> /Users/flydean/.pyenv/versions/anaconda3-5.1.0/lib/python3.6/site-packages/IPython/core/compilerop.py(99)ast_parse()
97 Arguments are exactly the same as ast.parse (in the standard library),
98 and are passed to the built-in compile function."""
---> 99 return compile(source, filename, symbol, self.flags | PyCF_ONLY_AST, 1)
100
101 def reset_compiler_flags(self):
ipdb>
In [12]: pdb
Automatic pdb calling has been turned ON
In [13]: pdb
Automatic pdb calling has been turned OFF
или вы можете использовать%run -d theprogram.py
для отладки внешней программы.
History
IPython может хранить ваши входные данные и выходные данные программы.Очень важной функцией IPython является получение исторических данных.
В интерактивной среде простой способ просмотра истории вводимых команд состоит в использовании стрелок вверх и вниз.
Еще более мощный IPython хранит все входные и выходные данные в двух переменных In и Out, таких как In[4].
In [1]: site = "www.flydean.com"
In [2]: site
Out[2]: 'www.flydean.com'
In [3]: In
Out[3]: ['', 'site = "www.flydean.com"', 'site', 'In']
Доступ к определенному вводу можно получить с помощью _ih[n]:
In [4]: _ih[2]
Out[4]: 'site'
_i, _ii, _iii могут представлять предыдущий, предыдущий и предыдущий ввод соответственно.
В дополнение к этому глобальная переменная _i также может использоваться для доступа к вводу, то есть:
_i<n> == _ih[<n>] == In[<n>]
_i14 == _ih[14] == In[14]
Точно так же есть три метода доступа к выходу:
_<n> == _oh[<n>] == Out[<n>]
_12 == Out[12] == _oh[12]
Последние три выхода также могут быть пропущены через_
, __
и___
чтобы получить.
Вы также можете использовать %history для отображения предыдущих исторических данных для выбора.
история может быть объединена с %edit,
%rerun,
%recall,
%macro,
%save和
Конфигурация и использование %pastebin:
Передавая число, можно выбрать номер входной строки истории.
%pastebin 3 18-20
В приведенном выше примере будут выбраны строки 3 и 18-20 ввода.
запускать системные команды
Используйте ! для прямого запуска системных команд:
In [27]: !pwd
/Users/flydean/Downloads
Вы также можете использовать переменные для получения результатов выполнения, например: files = !ls
Автор статьи: о программе flydean
Ссылка на эту статью:Woohoo. Freudpress.com/Python-IP на день…
Источник этой статьи: блог flydean
Добро пожаловать на мой официальный аккаунт: самая популярная интерпретация, самая глубокая галантерея, самые краткие уроки и множество трюков, о которых вы не знаете, ждут вас!