python学习记录_中断正在执行的代码,执行剪切板中的代码,键盘快捷键,魔术命令,输入和输出变量,记录输入和输出变量_
2018-03-28 00:56:39
中断正在执行的代码
无论是%run执行的脚本还是长时间运行的命令
ctrl + c
In [1]:
KeyboardInterrupt
执行剪切板中的代码
ctrl-shift-V
In [1]: def f(x,y,z): ...: return (x + y) / z ...: a = 5 ...: b = 6 ...: c = 7.5 ...:
%paste,%cpaste魔术函数
%paste可以承载剪切板中的一切文本,并在shell中以整体形式执行
%cpaste跟%paste差不多,只不过多了用于粘贴代码的特殊符号
In [2]: result = f(a, b, c) In [3]: %paste def f(x,y,z): return (x + y) / z a = 5 b = 6 c = 7.5 result = f(a, b, c) ## -- End pasted text -- In [4]: %cpaste Pasting code; enter '--' alone on the line to stop or use Ctrl-D. """ %cpaste在最终执行之前,你想粘贴多少就多少,若你发现粘贴的代码有错,只需按下ctrl+c可终止%cpaste提示符 """ :def f(x,y,z): : return (x + y) / z :a = 5 :b = 6 :c = 7.5 : :result = f(a, b, c) : :-- In [8]: %paste def f(x,y,z): return (x + y) / z a = 5 b = 6 c = 7.5
如果你粘贴的是一段缩进代码,就会引发一个IndentationError
python语言还是很严格的
result = f(a, b, c) y = 8 ## -- End pasted text -- File "<ipython-input-8-74e10d8df765>", line 8 y = 8 ^ IndentationError: unexpected indent In [9]: %cpaste Pasting code; enter '--' alone on the line to stop or use Ctrl-D. :def f(x,y,z): : return (x + y) / z :a = 5 :b = 6 :c = 7.5 : :result = f(a, b, c) : y = 8 :<EOF> File "<ipython-input-9-74e10d8df765>", line 8 y = 8 ^ IndentationError: unexpected indent
键盘快捷键
Ctrl+P或向上 后向搜索命令历史中以当前输入的文本开头的命令
Ctrl+N或向下 前向搜索命令历史中以当前输入的文本开头的命令
Ctrl+R 按行读取的反向历史搜索(部分匹配)
(reverse-i-search)`a': def add_numbers(a, b): ...: """ ...: Add two numbers together ...: Returns ...: ------- ...: the_sum : type of arguments """
Ctrl+Shift+V 从剪切板粘贴文本
Ctrl+C 中止当前正在执行的代码
Ctrl+A 将光标移到行首
Ctrl+E 将光标移到行尾
Ctrl+K 删除从光标开始至行尾的文本
Ctrl+U 清除当前的所有文本(与Ctrl+K相反)
Ctrl+F 将光标向前移到一个字符
Ctrl+B 将光标向后移到一个字符
Ctrl+L 清屏
魔术命令
In [1]: import numpy as np In [2]: a = np.random.randn(100,100) asd In [3]: %timeit np.dot(a,a) 1000 loops, best of 3: 638 µs per loop
魔术命令默认可以不带百分号,只要没有定义与其同名的变量即可/
%automagic打开关闭
%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_ls、%whos 显示interactive命名空间中定义的变量,信息级别/冗余度可变
%xdel variable 删除variable,并尝试清除其在IPython中的对象上的一切引用
matplotlib集成与pylab模式
输入和输出变量
最近的两个输出结果分别保存在_和__变量中
输入的文本保存在_ix变量中,其中x是输入行的行号
In [1]: 2 ** 3 Out[1]: 8 In [2]: _ Out[2]: 8 In [3]: __ Out[3]: 8 In [4]: foo = 'bar' In [5]: foo Out[5]: 'bar' In [6]: _i5 Out[6]: u'foo' In [7]: _5 Out[7]: 'bar' In [8]: exec _5
记录输入和输出变量
%logstart 即可开始记录日志
如果在写代码的过程中,突然想要保存所有工作时,直接启动日志功能就好啦
In [11]: %logstart Activating auto-logging. Current session state plus future input saved. Filename : ipython_log.py Mode : rotate Output logging : False Raw input log : False Timestamping : False State : active
上一篇: 无人驾驶航空器的飞行安全引发全球关注