【问题标题】:What's the difference between coding in the IDLE and the terminal?IDLE和终端中的编码有什么区别?
【发布时间】:2017-01-09 23:32:19
【问题描述】:

我安装了 python 2.7,我有它的 IDLE 版本。我还使用 Python 3 的终端和带有 conda 的 Python 2 创建了两个环境。

当我输入 python 时,它显示我正在使用 Python 3.5.2。现在:

  1. 如何在 IDLE 或终端中的两个版本之间切换?
  2. IDLE 编码和终端编码有什么区别?

【问题讨论】:

  • IDLE 是一个基本的 IDE,它有自己的终端仿真器。 “终端”只是另一个终端仿真器。
  • 用外行的话来说:IDLE 是 Python 独有的,专门为 Python 设计的。然而,终端用于许多不同的事情,并且特定于您计算机的操作系统。
  • 另外,您可能无法在 in IDLE 的两个版本之间切换。您必须打开特定于所需 Python 解释器的 IDLE 版本。

标签: python anaconda python-idle


【解决方案1】:
  1. 您不能在 Python 中切换 Python 的版本。 IDLE 运行在任何版本的 Python 之上,并且无法切换运行它的版本。您可以同时在 Python 2.7 上运行 IDLE 2.7 和在 Python 3.5 上运行 IDLE 3.5。

当您从任何 IDLE 编辑器运行代码时,它会添加您的 File => 最近的文件列表,该列表用于您运行的任何 IDLE 版本。我经常将一个文件拉入另一个正在运行的版本中,以查看它是否运行相同,可能是在针对 2.7 和 3.x 之间的已知差异进行修订之后。

  1. 人们编写的代码中至少有 95% 直接在 Python(带有 -i 标志)和 IDLE 中运行。 IDLE 文档(可在 Help => IDLE Help 下访问)记录了这些差异。

3.2。 IDLE-控制台差异

尽可能用 IDLE 执行 Python 代码的结果是 与在控制台窗口中执行相同的代码相同。然而 不同的界面和操作偶尔会影响可见 结果。例如, sys.modules 以更多条目开始。

IDLE 还将 sys.stdin、sys.stdout 和 sys.stderr 替换为对象 从 Shell 窗口获取输入并将输出发送到 Shell 窗口。当这 窗口有焦点,它控制键盘和屏幕。这是 通常是透明的,但可以直接访问键盘的功能 和屏幕将无法工作。如果 sys 使用 importlib.reload(sys) 重置, IDLE 的更改会丢失,像 input、raw_input 和 print 这样的东西会丢失 将无法正常工作。

使用 IDLE 的 Shell,可以输入、编辑和调用完整的语句。 一些控制台一次只能使用一条物理线路。闲 使用 exec 运行每个语句。因此,'builtins' 是 总是为每个语句定义。

我可能还应该补充一些同样深奥的东西。

【讨论】:

  • “我应该补充一些同样深奥的东西。” -> 我有兴趣,请做:)
  • @Rightleg 我确信的一件事是,在控制台和 IDLE 的 shell 中粘贴多行的工作方式不同。特定于特定操作系统控制台或 Python 在该系统上使用的终端的代码将无法在 IDLE 中运行。
【解决方案2】:

IDLE 具有此功能,它会自动或使用 ctrl+space 建议对变量进行操作。但是在终端中无论如何都不会出现这样的建议提示。

不确定如何在终端中切换版本。

【讨论】:

  • 这并不能具体回答 OP 的问题
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-05-19
  • 2017-12-06
  • 2018-11-26
  • 2019-08-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多