用Python编程,免不得需要做些实验,你可以python interactive shell 里面试一下某个表达式是否正确,某个包 是怎样使用的,用dir(obj)看看一个对象都有些啥属性,用help(foo)查看帮助 (这有赖于python强大的类型自省(type introspection)能力——C++粉丝又被吐槽了)。。。

另外一方面,matplotlib这类扩展(或者说应用?)更是以interactive shell作为主要交互界面了。

不过python自己的interactive shell 还是弱了一点,比如没有代码补全,没有语法高亮,不能一次选择历史里面 的多行进行重用。下面简单介绍几个增强型的Python Interactive Shell.

IDLE

IDLE 是python的自带IDE(是的,它有编辑器、有调试器、还有这里讨论的interactive shell功能),采用tk编写 界面,虽然功能不是太强,但好在自带,并且跨平台,可以救急用用。

IDLE里面的interactive shell相对终端版本(就是不带参数运行python,或者带-i参数执行时出现的shell)而言, 多了几个功能:

代码高亮

代码补全(按tab键出现)

显示函数说明,比如输入"os.path.isfile("后它会以提示框现实os.path.isfile这个函数的signature和文档

BTW: idle的shell里重用历史记录的快捷键是Alt-p(上一条)和Alt-n(下一条) —— Emacs用户表示这很自然 :-)。

又: 有个IdleX项目, 为IDLE提供了一些增强扩展和插件,在编辑、执行、帮助、shell各方面都有增强,有兴趣的 可以试试。下面是与shell相关的增强:

Terminal-like behavior for Shell. Cursor stays in prompt and up/down arrow keys cycle the command history.

Persistent history of Shell commands across sessions.

Paste and run multiple lines in the shell.

Non-blocking interactive GUI development for Tkinter, GTK, Qt, Qt4, PySide, wxPython

Matplotlib support for interactive figures when using the subprocess.

Clear Shell Window without restarting.

Capture large output and display it as an expandable button.

DreamPie

DreamPie 的功能定位比较单一,没有IPython里面的并发、shell命令等功能,它只是要改善一般使用interactive shell时候的不便: 多行输入/重用不方便、没有代码补全,没有即时的函数帮助(calltip)等。

dreampie有几个特色功能:

支持代码高亮,随着你的输入自动变色,而且支持色彩主题(缺省提供dark/light两套,要自己配置也可以);

在界面下方提供了一个多行输入框,你可以方便地编辑多行输入,比如回到上一行去修改;

如果一段输出比较长,它可以将它折叠起来,方便你查看前面的内容;

支持Python/Jython/IronPython;

可以将整个交互过程保存为一个漂亮的HTML,颜色/缩进都很好地保留下来了——而且你下次还可以加载这份历 史,继续探索!

如果你的语句进入了死循环,或者因为I/O等原因无法完成,你可以用Ctrl-C中止它,但你的会话不会就此中 止了(但在wxpy的python shell里面(见下节),就会中止),你的历史记录也还在

wxpython里面的PyShell, PyCrust和PyAlaMode

这是wxpython里面自带的工具,其实PyCrust = PyAlaCarte + PyFilling, 而PyAlaMode = PyAlaCarte + PyShell + PyFilling。其中PyShell是python shell交互功能,PyAlaCarte是个简单的Python代码编辑 器,PyFilling是个对象察看器。所以PyAlaMode就是相对PyCrust多了文件编辑的功能。

在代码高亮、自动补全、自动显示帮助方面,wxpy跟其它python shell差不多,不再多数。唯一需要介绍的是 PyCrust/PyAlaMode下方面板里面的几个标签:

Namespace 标签的功能相当于dir()函数,它列出当前python shell名字空间里面的所有对象,以及它们的属性;

Display 标签的功能相当于print()函数,它会以字符串方式展示出一个对象,而且是调用pprint模块来显示 的,用法是在shell里面想使用print()的时候改用pp()这个函数,该对象就会在这里列出结果了;

Calltip 标签页显示一个函数的signature和帮助,这个函数是你在shell里最后一次输入的函数名

History 标签页列出在shell中所输入的全部历史

Dispatcher 标签页——我不太清楚 :-(

参考文档:

官方文档: The Py Manual (写得太简单了,你会失望的)

用PyCrust使得wxPython更易处理 ,来自wxPython in Action一书中相关章节,中文的。

PyCrust的改进版本: PySlices

这是PyShell/PyCrust的改进版本:

PySlices改进了多行输入的方式,一般的python shell只是在class/def/if/for这类语句后面呈现多行输入方式,

等你输入下一行。但PySlices缺省是多行输入,你可以在输入多行后,按Ctrl-Enter一并提交执行。也可以切换到 旧方式(在菜单Options->Settings->Enable Shell Mode)。

PySlices还从IPython学了几个功能过来:

函数调用的括号是可选的,比如"dir a"等同于"dir(a)"

支持一些常用unix shell命令,比如pwd, cd, ls

支持调用外部命令,只要命令行前面添加!就可以了,比如"!grep –help"

多行的输入/输出可以折叠起来,跟DreamPie差不多

最后说一下安装,从wxPython的ChangeLog看,应该是在2.8.11就合入了wxPython,但在Debian的安装包里又没有看 到,很奇怪。所以可以先安装python-wxtools 包,然后从 http://code.google.com/p/wxpysuite/downloads/list 这里下载,然后将PySlices*.*这几个文件提取出来即可 (需要简单修改一下两个py文件,将 ="import wx_py as py"= 修改为 ="import wx.py as py"= ; 如果你不安装 python-wxtools的话,也可以直接全部使用这里下载的,那就用不着修改了)。

python interactive shell_[python] 介绍几个Interactive Shell (上)相关推荐

  1. python开发简历自我介绍范文_你们简历上的自我介绍怎么写的?

    专业的来了,为超过300名学生修改过简历,我来分享个关于简历中自我介绍的写法,好多案例,简单易上手,小白也可直接仿照实操. 先明确一个点,自我介绍也叫"自我评价",在boss.拉钩 ...

  2. Python+OpenCV:交互式图像前景提取(Interactive Foreground Extraction using GrabCut Algorithm)

    Python+OpenCV:交互式图像前景提取(Interactive Foreground Extraction using GrabCut Algorithm) ################# ...

  3. 第一课.python入门与环境介绍

    目录 Python简介 解释器的分类 包与模块 环境介绍 Python简介 python是语法简洁的解释型,交互型语言,解释型指的是通过解释器执行,因此效率会比较低:交互型则代表可以用命令交互执行,可 ...

  4. python 驱动级鼠标_Python介绍、安装

    点击蓝字关注我们 "Python 是当今高校中教授的首选语言,它在统计领域排名第一.在 AI 编程中排名第一.在编写脚本时排名第一.在编写系统测试时排名第一.除此之外,Python 还在 W ...

  5. python基础知识点-Python入门基础知识点(基础语法介绍)

    计算机基础知识介绍 计算机核心部件分为CPU,内存,硬盘,操作系统 1.CPU:中央处理器,相当于人大脑 2.内存:临时存储数据.现在通常分为 8g和16g(不能替代硬盘的原因:1,成本高 2,断电即 ...

  6. 十大python开发软件-必看 | 2020年,Python十大应用领域介绍!

    原标题:必看 | 2020年,Python十大应用领域介绍! python作为一门当下极其火爆的编程语言,得到世界范围内无数编程爱好者和开发者喜欢并不是偶然的,除了要比其他编程语言更容易入门,pyth ...

  7. python课程将主要介绍哪些内容-Python课程详细介绍

    渡课 Python 课程开课啦,学Python就来渡课IT 模块一:Python语言部分 课程介绍 介绍Python的诞生,Python有什么独特的特点,它适合用在哪些地方,不适合用在哪些地方,以及P ...

  8. 共享一PYTHON 相关应用领域的介绍资料

    无意思 搜索到[PYTHON 相关应用领域的介绍资料]资料列表 ,感觉非常好,这里共享: http://woodpecker4org.b0.upaiyun.com/pyconcn/pycon2012c ...

  9. Python之路---------Python介绍

    一. Python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为AB ...

最新文章

  1. 刻意练习:LeetCode实战 -- Task24. 恢复二叉搜索树
  2. 【Linux】Ubuntu的一些高(sao)效(cao)率(zuo)工具
  3. HDU 1297 Children’s Queue
  4. JavaScript 读取CSV文件并转为js对象
  5. Java黑皮书课后题第3章:*3.33(金融:比较成本)假设你要通过两种不同的包裹运输大米。你可能会编写一个程序来比较成本,该程序提示用户输入每个包裹的重量和价格,然后显示具有更优惠的包裹
  6. 测试linux硬盘读写速度
  7. 路由器连接久点就慢下来了,怎么回事?
  8. Windows server 2003 DNS子域与委派管理配置指南
  9. LADRC的学习——寻找物理模型被控对象(验证调参效果)
  10. EXCEL 宏 拆分数据表 VBA 视频教程下载
  11. adb命令刷机vivox20_刷机常用adb命令及刷recovery脚本
  12. 黑莓7290无信号问题
  13. Python使用Opencv打开笔记本电脑摄像头报错解决办法
  14. 计算机病毒结构及技术分析
  15. Dlink路由器后门分析
  16. Codeforces Round #322 B Luxurious Houses
  17. 关于几个箭头符号含义的介绍
  18. 滚动距离置零,恢复到初始位置
  19. 人人都能成为闪电网络节点:第7章管理lnd
  20. 模型修饰在无人机航测实景三维模型生产中的应用——以DP-Modeler软件为例

热门文章

  1. js逆向系列之猿人学爬虫第17题-天杀的http2.0
  2. 使用ROS MoveIt!控制真实五自由度机械臂
  3. SSO单点登录教程(四)自己动手写SSO单点登录服务端和客户端
  4. python的numpy.random.choice(a, size=None, replace=True, p=None)函数
  5. swift中performSegue连线的使用storyboard加载多个控制器方法和demo下载
  6. Adobe Reader 无法找到或创建字体'宋体'
  7. 微信小程序支付 java
  8. 使用react的好处_聊一聊我对 React Context 的理解以及应用
  9. golang post 文字 图片_超简单的图片爬虫,搜集图片分分钟
  10. 数字去除尾巴多余的零,且至少保留两位小数