python - 在没有默认为普通文本的情况下,如何在 idle3 中打开保存的 .py 文件?
问题描述
我最近开始使用 idle3 来跟随讲师推荐的一些课程材料。打开一个新的 shell 并运行 python 代码工作得很好,问题是当我保存文件然后尝试重新打开它以继续课程工作时。
当我打开指定的 .py 文件时,它只会以常规文本加载,我无法再执行新代码,换行符在每行之前没有“>>>”,它甚至不会给出任何输出
如何打开保存的文件并继续执行代码?
解决方案
IDLE 的基本用途是两件事,文本编辑器和交互式控制台。
交互式控制台允许您编写任何 python 代码并立即看到它运行,非常快速的计算和/或测试代码,直到您获得所需的结果。
然而,保存选项(文件 -> 保存)具有欺骗性,因为它会保存您所看到的所有内容,包括>>>
保存为 .py 的内容不起作用,或者没有一些额外的工作,即删除所有>>>
和所有其他不需要的东西,所以更像是屏幕截图。
文本编辑器模式就是这样,但是专门用于 python 的语法高亮和诸如此类的东西,用它来编写模块或其他任何东西,将其保存为 .py 并按 F5 运行代码以对其进行测试,这将打开一个新的交互式控制台,并将所有代码加载到其中,或者将其加载到以前打开的控制台中,在这种情况下它将首先重置它,这意味着文件中没有的任何内容都将被丢弃(但您可以向上滚动可以如果需要,再次复制粘贴)
因此,例如,在您拥有的文件中
def greetings(name):
print("hello",name)
并且您使用 IDLE 的文本编辑器模式打开它,只需运行 (F5),您现在可以在交互式控制台中访问该功能
>>> greetings("bob")
hello bob
>>> a=23
>>>
并让我们创建一个具有某些值的新变量
现在让我们说我们回到文件并添加更多内容,现在看起来像
def greetings(name):
print("hello",name)
def add(a,b):
return a+b
b=42
并再次运行它,这会重置控制台,这会显示一个类似这样的 msj,其中包含加载文件的路径
====== RESTART: C:\Users\Copperfield\Documents\StackOverflow\example.py =====
>>>
现在我们有了greetings
andadd
函数,但是a
之前的变量现在是 loss
>>> a
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
a
NameError: name 'a' is not defined
>>>
但是你有b
>>> b
42
>>>
因此,使用文本编辑器模式编写您想要保留的所有内容,并在交互式控制台中使用它来测试这确实是您想要的东西,如果不是,请继续编辑它......
推荐阅读
- c# - 来自 IIS 的许多响应都以 OperationCanceledException 结束,导致 500 Internal server error
- sql - 按评分和日期的组合对条目进行排序
- testing - 使用 Buf 测试模块“isa-ok”
- leaflet - Leaflet.markercluster 中的图层组
- excel - 重命名 Google 图片 URL 列表并保存在新文件夹中
- angular - 存储从 API 下载的数据
- c# - EventHub 触发函数从应用程序设置中获取 EventHub 名称
- javascript - React + redux + axios + thunk,等待interceptors.response 刷新token
- sql-server - SQL 删除、插入或更新触发器后
- c - 递归结构(二叉树):通过结构指针从函数内部获取值