为什么 exec("break") 不在 while 循环内工作

2023-11-26

正如问题所问,为什么下面的代码不起作用:

while True:
      exec("break")

我通过 python 3.5.2 控制台在 pycharm 中执行上述内容。 我最初认为这是一个上下文问题,但在阅读文档后,我还没有进一步理解为什么会出现此错误。

SyntaxError: 'break' outside loop

提前致谢 :)

EDIT:顺便说一句,我知道它可以在没有 exec() 的情况下工作,我很好奇为什么它不能与 exec 一起工作(因为我的情况需要它) - 欢迎全面的答案。


这是因为exec()对周围的 while 循环一无所知。所以唯一的声明是exec()在你的例子中看到的是break。而不是使用exec("break"),只需使用break as is.

唯一访问的是exec()函数具有其周围范围,是globals() and locals()字典。的文档exec()提供了一些关于如何exec() works:

该函数支持Python代码的动态执行。对象必须是字符串或代码对象。如果它是一个字符串,则该字符串将被解析为一组 Python 语句,然后执行该语句(除非发生语法错误)。 [1] 如果它是一个代码对象,则简单地执行它。在所有情况下,执行的代码都应作为文件输入有效(请参阅参考手册中的“文件输入”部分)。请注意,即使在传递给 exec() 函数的代码上下文中,也不能在函数定义之外使用 return 和yield 语句。返回值为无。

在所有情况下,如果省略可选部分,则代码将在当前范围内执行。如果仅提供全局变量,则它必须是字典,它将用于全局变量和局部变量。如果给出了全局变量和局部变量,则它们分别用于全局变量和局部变量。如果提供的话,局部变量可以是任何映射对象。请记住,在模块级别,全局变量和局部变量是相同的字典。如果 exec 获取两个单独的对象作为全局对象和局部对象,则代码将像嵌入在类定义中一样执行。

如果全局字典不包含该键的值builtins,对内置模块内置字典的引用将插入到该键下。这样您就可以通过插入自己的代码来控制哪些内置函数可用于执行的代码builtins在将字典传递给 exec() 之前将其放入全局变量中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 exec("break") 不在 while 循环内工作 的相关文章

  • X 轴刻度标签按年份,X 轴网格线按财政季度

    我试图将 x 轴刻度标签设置为年份 但将网格线设置为财政季度 数据很简单 只是一个groupby date count 见下文 每个日期都有一个计数 我将其绘制为线图 rc rc form Bakken rc tgt oil groupby
  • Django:NoReverseMatch at /'myapp'不是注册的命名空间

    我在模板渲染期间遇到此错误 我想做的是允许用户上传 csv 然后将数据处理到模型中 第 109 行出错 myapp 不是已注册的命名空间 这是我的第 109 行代码
  • Django 1.6:清除一张表中的数据

    我有一个名为 UGC 的表 想要清除该表中的所有数据 我不想重置整个应用程序 这也会删除所有其他模型中的所有数据 是否可以只清除一个模型 我还为我的应用程序配置了 South 如果这有帮助的话 你可以使用原始 SQL https docs
  • 查找数据集中的异常值

    我有一个 python 脚本 它创建服务器正常运行时间和性能数据列表的列表 其中每个子列表 或 行 包含特定集群的统计信息 例如 格式良好的它看起来像这样 Cluster Availability Requests Sec Errors S
  • 搜索/替换 xml 内容

    我已经成功地使用 xml etree ElementTree 解析 xml 搜索内容 然后将其写入不同的 xml 然而 我只是处理单个标签内的文本 import os sys glob xml etree ElementTree as ET
  • 获取父类名? [复制]

    这个问题在这里已经有答案了 class A object def get class self return self class class B A def init self A init self b B print b get cl
  • 如果每个元组中的第二项重复,如何从元组列表中删除元素?

    如果每个元组中的第二项重复 如何从元组列表中删除元素 例如 我有一个按第一个元素排序的列表 如下所示 alist 0 7897897 this is a foo bar sentence 0 653234 this is a foo bar
  • 映射 2 个数据帧并替换目标数据帧中匹配值的标头

    我有一个数据框 df1 SAP Name SAP Class SAP Sec Avi 5 C Rison 6 A Slesh 7 B San 8 C Sud 7 B df2 Name Fi Class Avi 5 Rison 6 Slesh
  • 将 postgres 连接到 django 时遇到问题

    以下文档来自Django Postgres 文档 https docs djangoproject com en 4 1 ref databases postgresql notes我添加到我的settings py 在我设置的设置中 DA
  • 如何在Python中将N毫秒添加到日期时间

    我正在设置一个日期时间变量 fulldate datetime datetime strptime date time Y m d H M S f 其中日期和时间是适合日期时间性质的字符串 如何将此日期时间增加 N 毫秒 Use timed
  • dask分布式内存错误

    在分布式作业上运行 Dask 时 我在调度程序上遇到以下错误 distributed core ERROR Traceback most recent call last File usr local lib python3 4 dist
  • 过滤给定范围内的坐标

    我有数百个带有地理位置的 out 文件 我将把它们批量导入到 SQLite 数据库中 但是 为了节省时间 我只会导入地理坐标在某些间隔内的线 文件是这样的 value value longitude latitude value value
  • 如何忽略 Sentry 捕获中的某些 Python 错误

    我已将 Sentry 配置为捕获 Django Celery 应用程序中的所有错误 它工作正常 但我发现一个令人讨厌的用例是当我必须重新启动我的 Celery 工作人员 PostgreSQL 数据库或消息服务器时 这会导致数千种各种 无法访
  • 从Python列表中挑选出具有特定索引的项目

    我确信在 Python 中有一种很好的方法可以做到这一点 但我对这门语言还很陌生 所以如果这是一个简单的方法 请原谅我 我有一个列表 我想从该列表中挑选某些值 我想要挑选的值是列表中索引在另一个列表中指定的值 例如 indexes 2 4
  • 如何隐藏 Tkinter python Gui

    有人知道如何隐藏 python GUI Tkinter 我已经创建了键盘记录器 对于 GUI 我使用了 python 模块 Tkinter 我想添加名为 HIDE 的按钮 因此当用户单击它时 它将隐藏 GUI 当用户按下 CTRL E 之类
  • Python for 循环前瞻

    我有一个 python for 循环 其中我需要向前查看一项以查看在处理之前是否需要执行某项操作 for line in file if the start of the next line 0 perform pre processing
  • pandas groupby 中两个系列的最大值和最小值

    是否可以从 groupby 中的两个系列中获取最小值和最大值 例如下面的情况 分组时c 我怎样才能得到最小值和最大值a and b同时 df pd DataFrame a 10 20 3 40 55 b 5 14 8 50 60 c x x
  • 为什么变量 1 += 变量 2 比变量 1 = 变量 1 + 变量 2 快得多?

    我继承了一些 Python 代码 用于创建巨大的表 最多 19 列宽 5000 行 花了九秒用于在屏幕上绘制表格 我注意到每一行都是使用以下代码添加的 sTable sTable n GetRow where sTable是一个字符串 我将
  • Maya python 连接选择的属性

    我一直在尝试制作一个简单的脚本 它将采用两个视口选择 然后基本上将第二个视口的旋转连接到第一个 我不确定如何正确地从视口选择中为对象创建变量 这是我的尝试 但不起作用 import maya cmds as cmds sel cmds ls
  • 导入错误:无法导入名称

    我有一个名为 google translate python 的库 https github com terryyin google translate python https github com terryyin google tra

随机推荐

  • 使用 \==/2 或 diff/2

    如果我想确保两个变量不会实例化为同一个术语 首选的方法是什么 假设我需要在图中找到有向边 并且节点本身不能有边 node a x y node b z x node c y y 这里的边是 a gt c b gt a 但是notc gt c
  • 将 UIView 从底部移动到顶部

    如何在代码中将视图从底部移动到顶部 colorView hidden NO colorView UIView alloc init colorView frame CGRectMake 0 480 320 480 colorView bou
  • 从 Python 调用 PHP

    是否可以使用 python 运行 PHP 脚本 您可以查看subprocess类 更具体地说 subprocess call subprocess call popenargs kwargs subprocess call php path
  • Moq DbSet NotImplementedException

    我有一个 Moq DbSet 直到最近一直在工作 但是自从上次更新依赖项以来 它一直抛出NotImplementedException on IQueryable Provider 使用的代码如下 var mockSet new Mock
  • 如何使用Application Verifier查找内存泄漏

    我想使用标准实用程序查找应用程序中的内存泄漏 以前我使用自己的内存分配器 但其他人 是的 你 AlienFluid 建议使用微软的应用程序验证器 但我似乎无法让它报告我的泄漏 我有以下简单的应用程序 include
  • 输入/输出流:流结束?

    我一直想知道 流的结尾是什么 在 java io 包中大多数 readLine 方法的 javadoc 中 您可以读到 如果到达流末尾 则返回 null 尽管我实际上从未得到 null 因为大多数流 在网络的情况下 我最常使用的流 只是阻止
  • DOM 改变元素内容

    如何使用 PHP DOM 函数更改元素内容 深入 我已经查询了我的元素 修改了属性 现在想要更改它的内容 我该怎么做 Set the nodeValue属性如果你想设置元素的文本内容 el dom gt getElementById foo
  • 非词法生命周期借用检查器会提前释放锁吗?

    我读了什么是非词汇生命周期 使用非词法借用检查器 可以编译以下代码 fn main let mut scores vec 1 2 3 let score scores 0 borrows scores but never used its
  • 将 pandas 数据框中的浮点数转换为字符串

    我在 pandas 中有一个包含日期时间和浮点数据的数据框 time price1 price2 2018 02 01T00 00 00 000Z 1 4526547885 1 654775563 我需要将列转换为字符串格式 以便price
  • 如何在 Perl 中进行 64 位算术?

    我是一个 Perl 新手 我可以在 Perl 中简单地使用 64 位算术吗 例如 operand1 0xFFFFFFFFFFFF 48 bit value operand2 0xFFFFFFFFFFFF 48 bit value Resul
  • 删除powershell中的子目录,包括符号链接

    目前遇到问题 我目前正在这样做 Get ChildItem PATH Recurse ErrorAction SilentlyContinue Where Object Attributes notmatch Directory and L
  • 使用 lambda 而不是字符串属性名称选择模型属性

    我正在构建一个类型的属性列表 以包含在该类型的集合的导出中 我想在不使用属性名称字符串的情况下执行此操作 列表中仅包含该类型的某些属性 我想做这样的事情 exportPropertyList
  • Go - HTML 注释未呈现

    我正在构建 Go Web 应用程序 我在渲染的 html 页面上发现了一些异常 我所有的 html 评论突然没有被渲染 我猜是因为我使用的go版本 刚刚更新到更高版本 因为在我更新之前它是好的 这是我的代码 ul class breadcr
  • Java 8、类型注释和 JSR 308

    我已经安装了最新的 JDK 8 b116 但我注意到我无法使用类型注释 例如 阅读 Java 教程 如果我写 String str null String myString NonNull String str or TEST st new
  • 如何在c#中检索字符串formData js

    我必须在 net 的 Web api 中检索 idPerson 的值 我已经检索到文件 UploadedImage 但我无法检索 idPerson 的值 有人有解决办法吗 Thx 我的js函数 Upload de l image de pr
  • 零长度位域的实际使用

    我对 C 不太确定 但 C 允许长度为 0 的未命名位字段 例如 struct X int 0 问题一 这个可以有什么实际用途you考虑到 问题二 您知道哪些实际用途 如果有 Edited 您使用零长度位字段作为一种黑客方法 让编译器布局一
  • UIWebView stringByEvaluatingJavaScriptFromString

    我一直致力于让一些非常基本的 JS 在我的 UIWebView 中运行 在网络视图的委托中 我有 void webViewDidFinishLoad UIWebView wView NSString someHTML wView strin
  • 删除子图

    我正在尝试找出一种删除 动态 matplotlib 中的子图的方法 我看到他们有一个remove方法 但我收到错误 NotImplementedError cannot remove artist 我很惊讶我在任何地方都找不到这个 有谁知道
  • 缩放和平移后如何获得相对于画布的触摸坐标?

    在移动和缩放画布后 我需要获得相对于画布的 x 和 y 触摸 以检查碰撞和类似的情况 每当我平移画布或围绕原点 0 0 缩放画布时 我已经设法通过使用以下代码获取触摸坐标 private float convertToCanvasCoord
  • 为什么 exec("break") 不在 while 循环内工作

    正如问题所问 为什么下面的代码不起作用 while True exec break 我通过 python 3 5 2 控制台在 pycharm 中执行上述内容 我最初认为这是一个上下文问题 但在阅读文档后 我还没有进一步理解为什么会出现此错