大佬教程收集整理的这篇文章主要介绍了Python:实用的IPython(一种交互式开发环境),大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
用习惯了CentOS突然又用Windowsc;写Python想在控制端写怎么办?别急c;一招教你在Windows终端写出一手舒服的代码! 欢迎光临c;我的主页。更多干货c;等你来学: 不许代码码上红 警句:莫道君行早c;更有早行人。
说到IPython你肯定会奇怪c;Python前面怎么多了一个“I”?当然c;如果你对wxPython有了解的话也就见怪不怪了。IPython 是一个 python 的交互式 sHellc;比默认的python sHell 好用得多c;支持变量自动补全c;自动缩进c;支持 bash sHell 命令c;内置了许多很有用的功能和函数。 IPython 是基于BSD 开源的。 IPython 为交互式计算提供了一个丰富的架构c;包含:
1、强大的交互式 sHell Jupyter 内核 2、交互式的数据可视化工具 3、灵活、可嵌入的解释器 4、易于使用c;高性能的并行计算工具
快捷键 | 说明 |
---|---|
(ctrl+p) or 上箭头键 | 后向搜索命令历史中以当前输入的文本开头的命令 |
(ctrl+n) or 下箭头键 | 前向搜索命令历史中以当前输入的文本开头的命令 |
ctrl+r | 按行读取的反向历史搜索 |
ctrl+shift+v | 从剪切板黏贴文本 |
ctrl +c | 中止当前正在执行的代码 |
ctrl+a | 将光标移动到行首 |
ctrl+e | 将光标移动到行尾 |
ctrl+k | 删除从光标开始到行尾的文本 |
ctrl+u | 清除当前行所有文本 |
ctr+f | 将光标向前移动一个字符 |
ctrl+b | 将光标向后移动一格字符 |
ctrl+l | 清屏 |
IPython中有一些特殊的命令(被称为魔术命令(Magic Command))c;它们有的为常见任务提供便利c;有的则能使你轻松控制IPython系统的行为。魔术命令是以百分号%为前缀的命令。 常见的魔术命令:
命令 | 说明 |
---|---|
%quickref | 显示IPython的快速参考 |
%magic | 显示所有魔术命令的详细文档 |
%debug | 从最新的异常跟踪的底部进入交互式调试器 |
%hist | 打印命令的输入(可选的输入)历史 |
%pdb | 在异常发生后自动进入调试器 |
%paste | 执行剪切板中的Python代码 |
%cpaste | 打开一个特殊提示符以便手工黏贴待执行的Python代码 |
%reset | 删除interactive命令空间中的所有变量 |
%time statement | 计算一段代码的执行时间 |
%timeit statement | 自动选择重复和循环次数计算一段代码的执行时间。 |
IPython另一个重要的特点是它跟操作系统的sHell结合的非常紧密。 跟系统相关的魔术命令:
命令 | 说明 |
---|---|
!cmd | 在系统sHell中执行cmd |
output=!cmd args | 执行cmdc;并将stdout放在output中 |
%alias alias_name cmd | 为系统sHell命令定义别名 |
%bookmark | 使用IPython的目录书签系统 |
%cd directory | 将系统工作目录更改为directory |
%pwd | 返回系统的当前工作目录 |
%pushed directory | 将当前目录入栈c;并转向目标目录 |
%popd | 弹出栈顶目录c;并转向该目录 |
%dirs | 返回一个含有当前目录栈的列表 |
%dhist | 打印目录访问历史 |
%env | 以Dict形式返回系统环境变量 |
python sHell不是特指某一项命令c;而是一种命令行环境c;我们可以在sHell里面调用库以及执行语句c;常见的有ipython环境。 在IPython中c;以感叹号(!)开头的命令行表示其后的所有内容需要在系统sHell中执行。 例如:另外再启动一个Python编译器:
!python
IPython有一个简单的目录书签系统c;它可以帮助你很快速地写出以前在IPython中写过的命令。 例如:
定义一个书签example在目录Userdell下c;输入cd example便可以使用这些书签了:
如果书签与当前工作目录中的某个目录名冲突c;可以通过-b标记(覆盖)使用目录书签。
%bookmark -l
IPython的调试器增强了pdbc;如Tab自动完成、语法高亮、为异常追踪的每条信息添加上下文参考。调试代码的最佳时机之一就是在错误刚刚发生那一会儿。 命令(在异常发生后马上输入):
%debug
将会调用那个“事后”调试器c;并直接跳转到异常发生的那个栈频(stack frame)。
如果使用内置的time模块里面的time.clock和time.time函数手工测试代码运行的时间c;需要编写这样一些代码c;十分的繁琐:
import time
start=time.time()
for i in range(x):
#需要执行的代码
print("hello,world!")
elapsed_per=(time.time()-start)/x
用IPython的魔术命令%time来测试代码执行时间:
在大型应用程序的数据分析中c;像%time出现的微小的时间不准确现象是会累积的c;对于那些执行时间非常短的分析语句和函数而言c;%timeit是非常有用的。
在 Python 标准库里面有两个模块可以用来做性能测试。
一个是 Profilec;它是一个纯 Python 的实现c;所以会慢一些c;如果你需要对模块进行拓展c;那么这个模块比较合适。
第二个是 cProfilec;从名字就可以看出这是一个 C 语言的实现版c;官方推荐在大多数情况下使用。 这两者的接口和数据的输出格式是完全一样的c;你可以在这两者之间自由的切换。
🎈🎈🎈run方法: 在 cProfile 中c;进行性能测试十分简单c;只需调用 run 方法c;并将需要测试的函数及参数传递给它即可。
import cProfile
def @H_262_499@fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n - 1) + fib(n - 2)
if __name__ == '__main__':
cProfile.run('fib(3)')
在PyCharm中:
在IPython中:
- ncalls, 函数总共调用次数;
- tottime, 这个函数调用总共花费时间;
- percall, 每个调用的平均花费时间;
- cumtime, 总共累计花费时间;
- percall, 每个调用的平均累计时间;
- filename:lineno(function), 对应函数信息。
同时c;不难发现c;在图中耗时几乎都在fib上c;而且函数调用数过多c;这主要是因为函数是递归调用的c;并且会产生很多
冗余分支:多余重复的分支代码(依我的理解)
所以程序需要进行优化 优化方案:
Python 3 里有一个简单的装饰器叫做lru_cachec;可以自动的帮你缓存函数的值c;而不需要自己手动存储。
优化后:
import cProfile
import functools
@functools.lru_cache(@H_401_405@maxsize=None)
def @H_262_499@fib(n):
if n == 0:
return 0
if n == 1:
return 1
return fib(n - 1) + fib(n - 2)
if __name__ == '__main__':
cProfile.run('fib(30)')
PyCharm中:
一般情况下配置文ipython_config.py件位于(Windows):
D:pythonLib site-packagesjupyter_coretestsdotipython_emptyprofile_default
通过配置能够做的事情: 1、修改颜色 2、修改输入输出提示符 3、去掉out提示符跟下一个in提示符之间的空行 4、启用IPython扩展 5、定义自己的魔术命令或者系统别名 专门为某个程序或者项目量身定做配置:
ipython profile create secret_project
以上是大佬教程为你收集整理的Python:实用的IPython(一种交互式开发环境)全部内容,希望文章能够帮你解决Python:实用的IPython(一种交互式开发环境)所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。