首页 > 编程语言 >ipython 的感叹号、问号的使用

ipython 的感叹号、问号的使用

时间:2022-11-04 01:22:38浏览次数:85  
标签:编码 Shell 感叹号 使用 ipython IPython 问号

目录

IPython 是 Python 的在交互式界面上的升级版,可以直接在命令行中输入 ipythonipython3 使用(要提前下载好 IPython 的库),也可以使用 jupyter notebook 指令运行 Jupyter Notebook 并以 IPython 为内核进行使用。

IPython 与 Python 在命令上的不同在于添加了几个方便的语法和函数,其中 !? 是新添加的语法,%<command> 则可以调用 IPython 内置的、加强交互的函数。

本文参考自 https://ipython.readthedocs.io/en/stable/interactive/python-ipython-diff.html。

使用感叹号 ! 运行 Shell 命令

使用感叹号可以使你在运行 IPython 的 Shell 上运行一些命令,并获取这些命令的输出。

使用一个感叹号 !

运行

用实例来说明,试着运行命令吧。因为我使用的是 cmd 作为底层 Shell,所以也只能运行 cmd 的指令。

!copy nul a.txt  # 创建文件
!dir /b

那么就获得了在 cmd 下运行指令的输出。

赋值

这些输出可以赋值给变量,比如

a = !dir /b
a

切记不能写成 a = !dir /b; a 的形式,因为 ! 之后都是 Shell 命令的成分,Python 的语法自然是不适用的。

编码

还要注意编码问题,如果 Shell 和 IPython 使用的编码是不同的,那么就有可能产生编码问题,比如

因为 ls 命令在 cmd 环境下是不存在的,所以会保存,不过由于 cmd 使用的是 GB2312 编码,IPython 使用的是 UTF-8 编码,所以会产生乱码。

这时候如果强行转码是不行的,因为编码在已经被破坏了,非要这么做的话只会得到一个结果,那就是熟悉的“锟斤拷”。

最方便的方法就是改变 Shell 的编码,可以在 cmd 的设置选项中设置 cmd 的编码,也可以使用 chcp 切页命令临时改变编码。

使用两个感叹号 !!

运行

使用 !! 而不是 ! 的区别在于它们输出的形式:

! 输出的是这些命令原本的输出形式,也就是在 Shell 中运行的样子;而 !! 则会将输出转变成内置的、包含字符串的列表的形式,这与赋值给变量的样子是一样的。

编码

同样可能出现编码不一致导致的错误,解决方法同上。

赋值

!!! 同样可以赋值给变量,如果没有编码问题的话,两者没什么不同。

注意

注意有一些命令是不可以使用的,比如 cd 转移工作目录指令,如果你想转移工作目录的话,应该使用 % 开头的内置函数。一般来说,在你错误地使用这些命令的时候,IPython 会提示错误,并告诉你应该怎么做。

!cd test # Error
%cd test # Ok

使用问号 ? 获取帮助

如果恰好忘记了某个库、类、函数、或者它的使用方法,那么可以使用 ? 来获取帮助。这个方法的本质是获取注释信息。

关于注释的使用可以参考我以前的文章 Python 注释,因为可以在库、类、函数上添加注释,自然也可以使用 ? 获得库、类、函数上的帮助。

使用一个问号 ?

单独的一个问号可以获得 IPython 本身的帮助。

对于自己写的库、类、函数也是可以的,可以获得自己写的注释信息。

使用两个问号 ??

使用 ?? 会比 ? 尝试获得更多信息。如果说 ? 提取的是注释的话,那么 ?? 就会尝试将源码给你拿出来。

使用 * 做模糊查询

加上 * 后使用 ? 会寻找类、函数。这个时候就不要使用 ?? 了,如果使用 ?? 就不是模糊查询了。

标签:编码,Shell,感叹号,使用,ipython,IPython,问号
From: https://www.cnblogs.com/violeshnv/p/16856401.html

相关文章