ipython的用法详解

article/2025/3/18 13:08:47

ipython是一个升级版的交互式python命令行工具.

ipython安装

pip install ipython

等到命令执行完成后显示successfully表示完装成功

1133627-20171031082111527-127066202.png

在命令提示符下输入ipython就可以启动ipython了

其与原版python命令行工具不同在于ipython的提示符变成了in和out.

in为输入命令的地方,out为命令执行完成后输出的地方

1133627-20171031082132527-2083752860.png

ipython的特点

tab键自动补全一些常用的方法

1133627-20171031082145886-1497288213.png

支持一些系统命令

    In [2]: pwd             # 显示当前所在目录Out[2]: '/root'In [3]: cd ..           # 返回当前目录的上一级目录/   

执行系统命令(!)

    In [6]: !ifconfigens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500inet 192.168.81.10  netmask 255.255.255.0  broadcast 192.168.81.255inet6 fe80::a545:8b99:d507:4d0f  prefixlen 64  scopeid 0x20<link>ether 00:0c:29:95:d5:31  txqueuelen 1000  (Ethernet)RX packets 12851  bytes 9887304 (9.4 MiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 7172  bytes 1546188 (1.4 MiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536inet 127.0.0.1  netmask 255.0.0.0inet6 ::1  prefixlen 128  scopeid 0x10<host>loop  txqueuelen 1  (Local Loopback)RX packets 140  bytes 12132 (11.8 KiB)RX errors 0  dropped 0  overruns 0  frame 0TX packets 140  bytes 12132 (11.8 KiB)TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0In [7]: !ip a1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:29:95:d5:31 brd ff:ff:ff:ff:ff:ffinet 192.168.81.10/24 brd 192.168.81.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::a545:8b99:d507:4d0f/64 scope link valid_lft forever preferred_lft foreverIn [8]: !cat /etc/sysconfig/selinux# This file controls the state of SELinux on the system.# SELINUX= can take one of these three values:#     enforcing - SELinux security policy is enforced.#     permissive - SELinux prints warnings instead of enforcing.#     disabled - No SELinux policy is loaded.SELINUX=disabled# SELINUXTYPE= can take one of three two values:#     targeted - Targeted processes are protected,#     minimum - Modification of targeted policy. Only selected processes are protected. #     mls - Multi Level Security protection.SELINUXTYPE=targeted 

?命令(内省,命令空间搜索)

    In [12]: l1?Type:        listString form: [1, 2, 3, 4]Length:      4Docstring:  list() -> new empty listlist(iterable) -> new list initialized from iterable's itemsIn [13]: def func():...:     print("hello world")...:     In [14]: func?Signature: func()Docstring: <no docstring>File:      /<ipython-input-13-4475a92670e6>Type:      functionIn [15]: func??             # 打印函数的源码Signature: func()Source:   def func():print("hello world")File:      /<ipython-input-13-4475a92670e6>Type:      functionIn [17]: l1.a*?l1.appendIn [18]: l1.p*?l1.popIn [19]: l1.__*__?l1.__add__l1.__class__l1.__contains__l1.__delattr__l1.__delitem__l1.__dir__l1.__doc__l1.__eq__l1.__format__l1.__ge__l1.__getattribute__l1.__getitem__l1.__gt__l1.__hash__l1.__iadd__l1.__imul__l1.__init__l1.__init_subclass__l1.__iter__l1.__le__l1.__len__l1.__lt__l1.__mul__l1.__ne__l1.__new__l1.__reduce__l1.__reduce_ex__l1.__repr__l1.__reversed__l1.__rmul__l1.__setattr__l1.__setitem__l1.__sizeof__l1.__str__l1.__subclasshook__

%run命令执行文件代码

    In [29]: !vi test.pyIn [30]: !cat test.pydef func1():print("hello world")func1()In [31]: %run "test.py"hello world

%paste和%cpaste命令执行剪帖板代码

    In [2]: %pastedef func1():print("hello world")func1()## -- End pasted text --hello world 

与编辑器和IDE交互

魔术命令:%timeit %pdb

    In [37]: %timeit a+b47.1 ns ± 0.955 ns per loop (mean ± std. dev. of 7 runs, 10000000 loops each)pdb是python debug的简写,一般用于排错

使用命令历史

使用上箭头或下箭头可以查看上一条命令或下一条命令的历史

输入与输出变量

    In [40]: !ls1    boot  etc   lib    media  opt   root  sbin  sys      tmp  varbin  dev   home  lib64  mnt    proc  run   srv   test.py  usrIn [41]: _                  # 执行前面倒数第一条命令Out[41]: 3In [47]: !ls1    boot  etc   lib    media  opt   root  sbin  sys      tmp  varbin  dev   home  lib64  mnt    proc  run   srv   test.py  usrIn [48]: print("hello world")hello worldIn [49]: !ls1    boot  etc   lib    media  opt   root  sbin  sys      tmp  varbin  dev   home  lib64  mnt    proc  run   srv   test.py  usrIn [50]: __Out[50]: 3In [54]: _i48               # 执行第48条命令Out[54]: 'print("hello world")'

目录书签系统%bookmark

    In [55]: %bookmark local /usr/local         # 定义local书签In [56]: %bookmark selinux /etc/sysconfig/selinux   # 定义selinux书签In [57]: %bookmark -l       # 显示所有的书签Current bookmarks:local   -> /usr/localselinux -> /etc/sysconfig/selinuxIn [55]: %bookmark local /usr/localIn [56]: %bookmark sysconfig /etc/sysconfigIn [57]: %bookmark -lCurrent bookmarks:local   -> /usr/localsysconfig -> /etc/sysconfigIn [58]: pwdOut[58]: '/'In [59]: cd local(bookmark:local) -> /usr/local/usr/localIn [60]: pwdOut[60]: '/usr/local'In [61]: cd sysconfig(bookmark:sysconfig) -> /etc/sysconfig/etc/sysconfigIn [62]: pwdOut[62]: '/etc/sysconfig'

ipython notebook

安装jupyter

pip install jupyter

运行界面

1133627-20171031082201465-89007737.png

1133627-20171031082209480-231359317.png

1133627-20171031082220027-925775726.png

ipython常用的魔术命令

%quickref                   显示ipython的快速参考
%magic                      显示所有的魔术命令的详细文档
%debug                      从最新的异常跟踪的底部进入交互式调试器
%hist                       打印命令的输入(可选输出)历史
%pdb                        在异常发生后自动进入调试器
%paste                      执行剪贴板中的python代码
%cpaste                     打开一个特殊提示符以便手工粘贴待执行的python代码
%reset                      删除interactive命名空间中的全部变量/名称
%page OBJECT                通过分页器打印输出object
%run script.py              在ipython中执行一个python脚本文件
%prun statement             通过cprofile执行statement,并打印分析器的输出结果
%time statement             报告statement的执行时间
%timeit statement           多次执行statement以计算系统平均执行时间.对那么执行时间非常小的代码很有用
%who,%who_id,%whos          显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable              删除variable,并尝试清除其在ipython中的对象上的一切引用

python调试器命令

h(help)                 显示命令列表
help command            显示command的文档
c(continue)             恢复程序的执行
q(quit)                 退出调试器,不再执行任何代码
b(break) n              在当前文件的第n行设置一个断点
b path/to/file.py:n     在指定文件的第n行设置一个断点
s(step)                 单步进入函数调用
n(next)                 执行当前行,并前进到当前级别的下一行
u(up)/d(down)           在函数调用栈中向上或向下移动
a(args)                 显示当前函数的参数
debug statement         在新的递归调试器中调用语句statement
l(list) statement       显示当前行,以及当前栈级别上的上下文参考代码
w(where)                打印当前位置的完整栈跟踪(包括上下文参考代码)

ipython快捷键

Ctrl+p或者向上键头            向后搜索命令历史中以当前输入的文本开头的命令
Ctrl+n或者向上键头            向前搜索命令历史中以当前输入的文本开头的命令
Ctrl+r                      按行读取的反向历史搜索(部分匹配)
Ctrl+Shift+variable         从剪贴板粘贴文本
Ctrl+c                      中止当前正在执行的代码
Ctrl+a                      把光标移动到行首
Ctrl+e                      把光标移动到行尾
Ctrl+k                      删除从光标开始到行尾的文本
Ctrl+u                      清除当前行的所有内容
Ctrl+f                      将光标向前移动一个字符
Ctrl+b                      将光标向后移动一个字符
Ctrl+l                      清屏

http://chatgpt.dhexx.cn/article/F5Z6YkyJ.shtml

相关文章

c语言的实验报告 实验4,C语言实验四实验报告

C语言实验报告四 实验4&#xff1a;循环结构程序设计 1、使用循环语句完成累乘、图像输出的程序编写。 2、掌握较复杂结构程序的编写。 3、掌握程序调试的方法。 4、编写实验报告。 二、实验内容 1、已知xyz yzz 532&#xff0c;其中x、y、z都是数字(0~9)&#xff0c;编写一个…

C语言实验题

C语言实验题&#xff08;单选&#xff09; C程序中的宏展开是在(). A:编译时进行的 B:程序执行时进行的 C:编译前预处理时进行的 D:编辑时进行的 答案&#xff1a;C 下列标识符中,不合法的C语言用户自定义标识符是(). A:printf B:enum C:_ D:sin 答案&#xff1a;B 已知函…

C语言实验课基础考点1.0

一、数据类型与输入输出 数据类型输入输出符号int&#xff08;整型&#xff09;%dlong int (长整型&#xff09;%ldfloat&#xff08;单精度浮点&#xff09; %f double&#xff08;双精度浮点&#xff09;%lfchar&#xff08;字符&#xff09;%cchar[ ]&#xff08;字符串&a…

C语言实验六

1. 从键盘上输入3个字符串&#xff0c;找出其中最大的字符串 #include <stdio.h>#include<string.h>int main(){ int i,j,k;char a[100],b[100],c[100];printf("请输入第一个字符串\n");gets(a);printf("请输入第二个字符串\n");gets(b);prin…

c语言报告实验反思,c语言实验总结与反思

c语言实验总结与反思 c语言实验总结与反思怎么写?以下是小编整理的相关范文,欢迎阅读。 c语言实验总结与反思一 这个星期,我们迎来了C语言实训——一次至为重要的实训。在这个星期里,同学们都很认真的做着那20多道实训题目,遇到不懂的互相请教,或请问老师。非常感谢老师对…

C语言实验题目及其解答

实验一 1、有以下C语言程序&#xff0c;功能为输入圆的半径&#xff0c;求出圆周长和圆面积。采用类的形式来改写该程序。&#xff08;要求半径的默认初值为0&#xff09; #include <iostream.h> const float PI3.14; float circumference(float r); float area(float r…

南京邮电大学C语言实验报告四

实验四&#xff1a;一维与二维数组实验 实验题目&#xff08;1&#xff09;【见实验教材实验五的题目&#xff11;】&#xff1a;编写程序exp5_1.c&#xff0c;在主函数中定义一维数组int array[10]&#xff0c;自定义以下函数&#xff1a;输入数组元素&#xff0c;输出数组元…

(C语言)实验2 用C语言编写程序

【实验目的】 1、熟悉顺序、分支和循环三种基本的控制结构。 2、使用C语言编制简单的顺序、分支和循环三种基本的控制结构的程序。 3、尝试用C 语言编写程序解决实际问题。 【实验要求】 1、实验共4题&#xff0c;每题25分&#xff0c;共100分&#xff1b; 2、实验需在截至日…

【C语言趣味实验】

C语言趣味实验--电脑关机&&猜数字 前言一、如何实现强制关机&#xff1f;shutdown用法 二、优化改进1&#xff1a;通过输入的字符串来判断是否关机改进2&#xff1a;通过猜数字是否正确来判断是否关机 总结 前言 亲爱的朋友们大家好&#xff0c;正如题目所见&#xff…

南京邮电大学C语言实验报告二

实验二&#xff1a;选择与循环结构编程 实验题目&#xff08;1&#xff09;【见实验教材实验二的题目6】&#xff1a;编程序exp2_6.c&#xff0c;读入3个double型变量a,b,c的值&#xff0c;用if语句判断它们能否构成三角形&#xff0c;如果能构成三角形又是构成的何种三角形&a…

C语言实验四

目录 1.国王的麦子 2. 求完数。 3.打印九九乘法表 4&#xff0e;求1!2!3!…20!&#xff1b; 5.&#xff08;1&#xff09;输入一行字符&#xff0c;分别统计出其中的英文字母、空格、数字和其它字符的个数。 &#xff08;2&#xff09;在得到正确结果后&#xff0c;请修…

c语言的实验,c语言 实验1

实验结论 Part 1 首次运行Part 1的几个实验内容时会产生错误&#xff0c;原因如下 有时忘记在主函数中的每行末尾加分号 return 0 时空格错误导致程序运行失败 # include int product (int,int); int main (void) { int x,y,s; scanf("%d%d",&x,&y); sprodu…

大一 C语言 实验1

《程序设计基础》上机实验报告 学号&#xff1a;201420224912 姓名&#xff1a;许培鑫 班级&#xff1a;计算机149 日期&#xff1a;2015-5-7 指导教师&#xff1a;成筠 成绩&#xff1a; ----------------------------------------------------------------- 实验六…

C语言 实验五

复制之前给个赞&#xff0c;好吗(〃▽〃) 题目一 7-1 参考书 (100 分) 某次考试是开卷考试。老师规定&#xff0c;纸质的资料&#xff08;以下统一称为参考书&#xff09;可以随便带&#xff0c;或者说只要你背得动想带多少本参考书都行。于是同学们就开始准备参考书了。就在…

C语言程序设计实验报告——实验一

C语言程序设计实验报告——实验一 实验一 简单C程序调试&#xff08;一&#xff09;第一个C程序1、实验题目&#xff1a;2、实验环境&#xff1a;3、实验步骤及过程&#xff1a;4、实验结果&#xff08;~~猜都猜得出来~~ &#xff09; &#xff08;二&#xff09;第二个C程序1、…

C语言实验报告(通用)

​​​​​​ 设计目的 公交线路基本信息的录入。1、线路信息的录入、修改等操作。2、要求系统要以菜单方式进行工作。3、公交线路包括&#xff1a;公交车号、起始发出车时间与末班车时间、票价等信息。 1.2 对知识点的基本介绍或者代码举例 正文&#xff0c;中文&#xff1a;宋…

RSA加密算法的数学原理

文章目录 RSA数学原理获取两个不相等的质数pq把p和q相乘&#xff0c;得到n计算出小于n的自然数中&#xff0c;有多少数与n互质&#xff08;欧拉函数&#xff09;在1和φ(n)之间&#xff0c;选取一个随机质数e求e和φ(n)的模反元素d&#xff08;裴蜀定理、扩展欧几里得算法&…

常见的加密算法原理与实现:RSA加密

系列四&#xff1a;RSA加密 一、基本背景二、算法原理2.1、生成公钥和私钥2.2、加密消息2.3、解密消息 三、Python实现RSA算法3.1、基于pycryptodome库实现RSA加解密3.2、基于rsa库实现RSA加解密 四、参考文献 一、基本背景 RSA算法是是由罗纳德李维斯特&#xff08;Ron Rives…

RSA加密和解密原理及过程(非对称加密)

非对称加密 用公钥来加密数据发送出去&#xff0c;接收方收到数据后用私钥解密数据。公钥是所有人都知道的&#xff0c;私钥只有接收方才知道。 加密解密基本流程 注意&#xff1a;公钥私钥中的33是同一个数字&#xff0c;是公开的&#xff0c;只有私钥的3是只有接收方才知道…

关于RSA加密解密原理

前言&#xff1a; 随着我们的学习的不断深入&#xff0c;信息的安全也愈加重要&#xff0c;我们发布的代码中可能含有我们的私密信息&#xff0c;比如对接支付宝沙箱api&#xff0c;下载一些专业软件时就需要我们输入公钥和私钥以此来验证我们的身份信息&#xff0c;就相当于用…