用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. python商业爬虫_商业爬虫学习笔记day1
  2. JSON.parse()与JSON.stringify()的区别
  3. Java Review - 并发编程_PriorityBlockingQueue原理源码剖析
  4. Objective-C NSString字符串操作总结
  5. 浅谈SAP Cloud for Sales 自动化
  6. 全程图解:Centos 5.2 下 ORACLE10G 安装配置
  7. 飞秋2010下载不仅野草是如此
  8. Spring MVC 4 - Hello World Tutorial
  9. MyBatis框架笔记03:MyBatis实现CRUD
  10. linux netfilter 分析,Linux Kernel Netfilter Helper 分析
  11. [JLOI2014]松鼠的新家 倍增LCA+树上差分
  12. .vue文件怎么使用_Vue使用ifream遇到的问题?怎么处理跨域呢?
  13. c gui和java gui_C/C++编程GUI库比较
  14. oracle连接和执行流程总结
  15. 使用reportlab生成条码
  16. 光环PMP 串讲冲刺 敏捷
  17. matlab模拟化学反应,Matlab环境下化学反应动力学的MonteCarlo模拟
  18. 利用feather快速处理大数据
  19. Windows安装Minikube(k8s体验)
  20. 理查德30多岁开发出C语言,《C语言程序设计》多媒体教学课件开发与应用

热门文章

  1. 反汇编修改《三国群侠传》最大金钱
  2. java 根据日期获取天数,java获取日期之间天数的方法
  3. vue-13 类与样式的绑定-自学视频
  4. arduino/Mixly使用MAX6675热电偶传感器
  5. bypass csp学习
  6. Lottie—json文件解析
  7. 使用Python+OpenCV+Dlib实现人脸检测与人脸特征关键点识别
  8. 小米手环NFC版复制校园卡,加密卡教程。
  9. 社保卡应用名称、标识符及文件系统的介绍
  10. 【精选】JAVA入门算法题(二)