首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为什么我的while循环可以在主文件中工作,但如果我试图从一个单独的文件中包含它,为什么不能呢?

在主文件中使用while循环可以正常工作,但在尝试从一个单独的文件中包含它时却无法工作的原因可能是因为作用域的问题。

在编程中,每个文件都有自己的作用域,也就是说变量和函数只在其所在的文件中可见。当你将while循环放在一个单独的文件中,并尝试从主文件中包含它时,主文件无法访问该文件中的变量和函数。

为了解决这个问题,你可以使用以下方法之一:

  1. 将while循环所需的变量和函数也包含在主文件中。这样,主文件就可以访问这些变量和函数,并且while循环可以正常工作。
  2. 在单独的文件中定义一个函数,该函数包含while循环以及所需的变量。然后,在主文件中包含这个文件,并调用该函数。这样,主文件就可以调用函数,从而执行while循环。

需要注意的是,为了避免命名冲突,建议在单独的文件中使用函数来封装while循环,并使用参数传递变量。

总结起来,当你尝试从一个单独的文件中包含while循环时,需要确保主文件可以访问到该文件中的变量和函数,或者将while循环封装在一个函数中,并在主文件中调用该函数。这样可以解决作用域的问题,使while循环能够正常工作。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 LLM 进行测试驱动开发:永不相信,始终验证

为了这个练习,从一详细提示开始,其中包含样本数据,指定要在数据识别的模式,并提供可以测试中使用样本输出,这些测试将证明脚本工作符合预期。...毕竟,目标不仅是创建可以工作软件(可证明),还可以被参与创建的人机合作理解、维护和发展软件。保持人类循环最佳方法是什么? 对于重新启动,专注于问题最棘手部分:正则表达式。...到目前为止,还没有成功地试图用 Cody 和 Copilot 来模拟这种效果。可以要求它们编写一通过测试函数,给它们通过测试,并将测试失败反馈给它们,用这种方法还没有得到一成功结果。...首先,需要将代码结构化为一包含文件,其中包含测试代码和运行时代码,并可以粘贴到提示。不过,这并不是一艰难任务,而且对于小项目来说,这通常是首选方法。...它也可以表现出一倔强孩子行为,谁知道必须不断提醒遵守规则。但是,如果你紧追不放,测试可以成为一很好方式,将它注意力集中在你要编写代码上。

13610

狂野 #imports: 如何驯服文件依赖关系

文件依赖性 .m 文件不必要 #imports 会造成困扰。为什么?因为迫使你项目中使用其他文件。...当你项目中工作时,这并不是什么大问题,当你开始一新项目并想重复使用一些源文件时,这就会立刻带来麻烦。 但是,.h 文件不必要 #imports 会更糟糕:问题会呈指数级增长!...请相信我:大型项目中,一切都会陷入僵局。有人告诉:"这不重要。反正也需要休息一会儿,所以我不介意等建好"。这么说的人并没有进行测试驱动开发。...这也是为什么把协议声明放在自己文件,而不是与它们合作类放在一起。这样可以保持依赖关系图简洁。...如果方法委托给另一对象并返回它所得到结果,请尝试前置声明该对象,而不是导入如果包含模块会迫使你包含一级又一级连续依赖关系,那么你可能有一组类想成为一库。

16110

程序员25大Java基础面试问题及答案

Java 有自动内存管理机制,不需要程序员手动释放无用内存 2.什么是 Java 程序类 应用程序和小程序类有何不同? 一程序可以有多个类,只能有一类是类。... Java 应用程序,这个类是指包含 main()方法类。而在 Java 小程序,这个类是一继承自系统类 JApplet 或 Applet 子类。...而其包含两种对象,Math对象我们经常用到,可这个Global对象是啥东西? Global对象是ECMAScript中最特别的对象,因为实际上根本不存在,有点玩人意思。...20.停止非循环Java线程 这可能是误读了所读内容一种情况,但是Java杀死线程所有示例似乎都表明您必须发出信号以杀死自己。您不能在没有严重风险情况下从外面杀死。...使你可以与使用原始类型几乎相同工作来保持泛型安全。 认为关键要理解是,原始类型(不带)不能与泛型类型相同。声明原始类型时,不会获得任何好处和泛型类型检查。

16720

InnoDB锁——第三部分“死锁”

) 由粒度引起死锁,以及通过锁排序克服死锁方法 在这篇文章将描述死锁检测InnoDB 8.0.18工作原理,并介绍以下概念: 等待图 死锁循环 死锁受害者 一关于死锁例子: ...他们为什么不能礼貌一点互相谦让? 首先有必要回答一挥之不去问题。为什么他们不能在完成对第一文件读取之后,在请求对下一文件写访问之前,释放读访问权限?...例如,为什么不让ABe释放他对file A读访问权限,这样BAsil就可以获得文件A写访问权限,完成他工作,释放所有持有的访问权限,之后ABe就可以没有任何延迟情况下继续工作了。...值得庆幸是,这只会向图中添加循环可以忽略 (实际上,InnoDB,事务通常要求同时访问一行和该间隙之前间隙,如果您更喜欢将其建模为具有从一事务到两单独资源传出边,或者您更喜欢将其建模为具有其他复杂访问权限单个资源...让先给你一些关于为什么会这样直觉: “密集图”形成一循环不能从“密集图”消失,正是因为它们节点是死锁

79120

为什么程序员总是发现不了自己Bug? 程序员: 不认识他啊

话又说回来,如果代码没有坏掉的话,那就不要去修复。这种汹涌澎拜斗争是经常要面对,而且显然会困扰许多软件开发人员。 2.“为什么这个脚本需要这么多库?”...此外,它们还为开发人员提供了一些自定义和独特选项。万一真的没有可用插件的话,为什么不自己构建一? 4.“虽然网站可以工作,但我害怕 IE 浏览器。”...对于 if / else 循环,for 循环while 循环,do 循环等等,都有逻辑表达式。当浏览示例代码时,试图指出逻辑是如何工作。 NOT 运算符和比较标记数量又是如此之多。...如果还有其他工作需要做,那么不妨去做其他工作。 相对于已经花费了 5 小时来解决问题依然不得入门而言的话,这将能更好地分配时间和资源。 11.“哦,天哪,以前为什么不写点注释?”...因此,要是有一些有帮助注释就会让你获益良多。 12.“20 分钟前它还可以工作……” 构建程序时,可能最令人沮丧部分就是,它从能工作不能工作——而你没有更新代码任何部分!

1.1K10

图文了解 Kubernetes

不仅可以仅分发应用程序二进制/代码,还可以以实用方式分发运行应用程序所需整个环境,因为可以将容器构建为非常小单元。解决“机器上工作”问题完美解决方案。...如果没有Pod抽象,就不能在kubernetes运行容器。Pod添加了对kuberenetes容器之间联网方式至关重要功能。 ?...快乐Pod 一 Pod 可以有多个容器,并且在这些容器运行所有服务都可以将彼此视为本地主机。这使得将应用程序不同方面分离为单独容器,并将它们全部作为一容器加载在一起非常方便。...例如,假设您应用是照片上传应用(例如instagram),它可以将这些文件保存在一,而同一容器另一容器可以监视该卷文件,并开始对其进行处理以创建多种尺寸,将它们上传到云存储。...只是使更容易被视为一真正实体,让他们脱颖而出以了解其kubernetes 生态系统作用。 Ingress ?

59430

ROS: Why、What and How

大约5年前,当我开始学习机器人技术时,遇到了 ROS。到处浏览网页,试图了解它是什么,可以在哪里使用它以及为什么要学习。...试图理解这项技术过程偶然发现了更多术语 —— 中间件、硬件抽象层、消息传递等等。不是很理解这些概念,依然继续安装 ROS。...如果你像我曾经一样,是开发领域新手,希望你能充分利用这一系列文章来帮助你开始开发机器人应用程序。我们开始之前,我们先来看看 ROS 10年是什么样: 首先,为什么需要 ROS?...让我们从一例子开始。出于某种原因,你决定建造一自主移动机器人(autonomous mobile robot)。你已经意识到,你可以从任何你喜爱供应商获得可靠而经济电机。...在这个过程最后,你文件系统应该有一名为 catkin_ws 目录。

72432

为什么程序员总是发现不了自己Bug?

丑陋逻辑语句,还有冗长语法,导致代码非常难以阅读! 话又说回来,如果代码没有坏掉的话,那就不要去修复。这种汹涌澎拜斗争是经常要面对,而且显然会困扰许多软件开发人员。 2....此外,它们还为开发人员提供了一些自定义和独特选项。万一真的没有可用插件的话,为什么不自己构建一? 4.“虽然网站可以工作,但我害怕 IE 浏览器。”...对于 if / else 循环,for 循环while 循环,do 循环等等,都有逻辑表达式。当浏览示例代码时,试图指出逻辑是如何工作。 NOT 运算符和比较标记数量又是如此之多。...如果还有其他工作需要做,那么不妨去做其他工作。 相对于已经花费了 5 小时来解决问题依然不得入门而言的话,这将能更好地分配时间和资源。 11.“哦,天哪,以前为什么不写点注释?”...因此,要是有一些有帮助注释就会让你获益良多。 12.“20 分钟前它还可以工作……” 构建程序时,可能最令人沮丧部分就是,它从能工作不能工作——而你没有更新代码任何部分!

77020

完整Kubernetes Deployment yaml文件应该包含什么?

Pod 可以包含多个容器,如果想查看其中单个 Container 容器,可以使用 kubectl logs client-pod -c client-container。...如果容器依赖与另外一容器,使用 initContainer 来延迟 Pod 容器启动。同时 initContainer 是顺序启动容器。...探针这个功能是 Kubernetes 很接地气设计,分布式系统很棘手问题就是服务数量众多,存在一定量僵尸服务,常规做法通过侵入式设计,服务添加接口,循环检测,发现问题消息通知,在这种机制下消息往往不能得到及时解决...preStop 容器终止前任务,主要用于优雅关闭应用程序或者通知第三方服务等操作, 停止前钩子非常重要,编排文件应该包含。看完了两生命周期钩子函数,我们也说了停止前钩子非常重要,为什么?...(前提是你所有日志文件都已经 mount 到宿主机) 如果通过日志仍然无法看出问题或者根据异常信息不能分析出问题所在,其实可以通过 kubectl cp values.yaml pod-9fbfdbf89

1.9K30

编写快速安全Bash脚本建议

我们会包含: 一些bash基础知识(“你怎么写一for循环”) 杂项事宜(“总是引用你bash变量”) bash脚本安全提示(“总是使用set -u”) 如果你编写shell脚本,并且你没有阅读这篇文章其他任何内容...还有 局部变量 ,它们作用域只能存在于bash函数基本上从来没有使用过这样函数(不像我写其他编程语言),从来没有使用过局部变量。 for循环 以下是bash编写循环方法。...你也可以while循环,但我从来没有这样写过。 有很酷事情是你可以遍历另一命令输出。seq 1 10 将数字从1到10(每行一)打印,这个for循环只是提取该输出并遍历。...最后一件事是为什么[[比[好:如果你使用[[,那么你可以使用<做比较,它不会变成文件重定向。...如果不止一进程,您可以使用 jobs 查看所有后台进程。由于某种原因,fg 需要一 “job ID”(这就是 jobs 打印输出)而不是一 PID。 谁知道 Bash 为什么这样子

1.8K80

干货 | 从资深软件工程师学到避坑大法

发现命名好另一好处是:如果看起来太长了,就像 LayoutComponent 包含了很多业务逻辑层,就知道是时候要重构了,因为业务逻辑层并不属于这里。...如果忘记了这部分代码,之后又回到了代码工作上,没有注释的话不能重新创建上下文,可能只会想:「为什么他们要这么写?这没有任何意义……哦,等等,是。」 这里就是开发文档和注释该出现地方。...设计本应该在第一位,但是如果没有环境写代码和测试,可能会不擅长设计一循环境特性系统。 设计系统时,有很多事情需要考虑: 使用编号是多少? 有多少用户?预期增长是多少?...你不能将这些信息存到代码,因为这样任何人都能看得到。 把它们作为环境变量?这是一好主意。你怎么把它们放在那里?...维护过程遇到了这个问题:系统为什么会降级,以及如何降级? 有两原因可以解答为什么系统也会有降级时候: 首先,系统不应当舍弃旧东西,而是已有的基础上增加更多功能。

56320

手把手 | 嫌Python太慢?并行运算Process Pools三行代码给你4倍提速!

下面的短程序我们使用Python自带glob 函数获取一包含文件夹中所有图片文件列表,并用Pillow图片处理库获取每张图片128像素缩略图。 这个程序遵循很常见数据处理模式: 1....让我们再跑一次程序,同时查看活动监视器: 计算机有75%空置,这是为什么? 问题在于我计算机有4CPU核,但是Python只用了其中一核。...即便程序把那个CPU核完全占满,但是其他3CPU核什么也没干。我们需要想办法把整个程序工作量分成4份然后平行运行。所幸Python可以做到这一点!...这有一些适合使用并行处理例子: 从一系列单独网页服务器日志里抓取数据。 从一堆XML,CSV和JSON文件解析数据。 对大量图片数据做预处理,建立机器学习数据集。...Process Pools不是万能。使用Process Pool需要在独立Python处理过程中将数据来回传递。如果你正在使用数据不能在处理过程中有效被传递,这种方法就行不通。

1.4K50

Java并发编程之CAS二源码追根溯源

那么Unsafe对象在哪里? 我们想要看源码,怎么查看?发现不能看源码啊。别急,这个文件源码可以从openJdk源码查到。...我们来看看这个方法调用操作系统底层C++代码: 说明: jint *addr:内存变量值 old:对象工作区域值 new_val:将要改变值。 这三是不是很熟悉,对。...就是CAS参数。 分析第13行为什么返回false: 11行时候,设置内存变量值V=1. 12行后,更新为V=2020了。...如:三排四列) Vart4:默认就是1 Var5:获取到内存值 Var5+var4:将要更新值。 从源码,我们看到是do while语句。为什么不是while语句?...While(true)后,接着循环执行。线程会放弃原有操作,重新从内存获取到最新数据(此时就是1了),然后再进行操作后。

88411

C语言基础知识入门(大全)「建议收藏」

\n是转义字符换行符。(注意:C程序一定是从函数开始执行) 四、规范 一说明或一语句占一行,例如:包含文件、一可执行语句结束都需要换行。...2.do-while循环 C语言中do-while循环,一般形式如下: do-while循环语句语义是: 先执行循环执行代码块,然后再判断while中表达式是否为真,如果为真则继续循环如果为假...但是从本质上讲,while,do-while和for循环之间是可以相互转换。 4.多重循环 多重循环就是循环结构循环又出现循环结构。 实际开发中一般最多用到三层重循环。...使用break语句时注意以下几点: 没有循环结构情况下,break不能用在单独if-else语句中。 多层循环中,一break语句只跳出当前循环。...如果你理解了上面这些内容,那么使用指针一定会更加自如。 3、结构体和指针 结构体内包含多个成员,这些成员之间在内存是如何存放

2.2K41

请谈谈你对线程可见性及volatile关键字理解?

Java内存模型 虽然我们发现了多线程环境下,但是我们先别忙着找解决方案,而是先来分析一下为什么线程对共享变量修改不能被其他线程观察到?这个问题就解释起来就比较复杂了。。所以我选择了抄书。...Java内存模型规定了所有的变量都存储内存(Main Memory)(此处内存与介绍物理硬件时内存名字一样,两者也可以互相类比,此处仅是虚拟机内存一部分)。...除此之外,Java内存模型还规定了执行上述8种基本操作时必须满足如下规则: 不允许read和load、store和write操作之一单独出现,即不允许一变量从内存读取了工作内存不接受,或者从工作内存发起了回写内存不接受情况出现...不允许一线程丢弃最近assign操作,即变量工作内存改变了之后必须把该变化同步回内存 不允许一线程无原因地(没有发生过任何assign操作)把数据从线程工作内存同步回内存变量只能在内存...lock操作,lock操作可以被同一条线程重复执行多次,多次执行lock后,只有执行相同次数unlock操作,变量才会被解锁 如果对一变量执行lock操作,那将会清空工作内存此变量值,执行引擎使用这个变量前

45410

女朋友通过 12 张图,学会了 Kubernetes,是不是棒棒哒!

容器一切都很好,软件开发人员生活现在要好很多。那么,为什么我们需要另一项技术,如Kubernetes这样容器编排工具? ? 当进入某个状态时,你需要用到来管理众多容器。...控制管理器:这是一控制循环监视集群状态(通过调用API服务器来获取此数据)并采取措施将其置于预期状态。 ? kubelet:是工作节点心脏。...快乐Pod 一Pod可以有多个容器,并且在这些容器运行所有服务器都可以将彼此视为本地主机。这使得将应用程序不同方面分离为单独容器,并将它们全部作为一容器加载在一起非常方便。...例如,假设你应用是照片上传应用(例如instagram),它可以将这些文件保存在一,而同一Pod另一容器可以监视该卷文件,并开始对其进行处理以创建多种尺寸,将它们上传到云存储。...试图控制ReplicaSet部署(头发凌乱) 部署是一高阶对象,使用ReplicaSet来管理副本。

65830

通过 41 问答方式快速了解学习 Git

当然可以大多数 git 工作流下,分支通常会累积来自多个其他分支更改,最终这些分支会被合并到分支。 18. 应该从一非常老分支做一 rebase 吗? 除非是迫不得已。...根据你工作流,可以将旧分支合并到分支如果你需要一最新分支,更喜欢 rebase。只提供更改且更清晰历史记录,而不是来自其他分支或合并提交。...21.与 master 合并之前,有必要更新分支吗 根据你工作流,可以将旧分支合并到分支如果工作流仅使用 "fast-forward"合并,那么有必要在合并之前更新你分支。...当然,某些可视化操作(如管理分支和查看文件差异)GUI总是更好。个人认为合并过程浏览器查看这些内容就足够了。 23. 当提交已经被推送时,可以做一 --amend 修改吗?...如果 A 和 B 不能合并到 master,可以简单地将 B 合并到 C ,因为 B 已经包含了 A 变更。 极端情况下,可以将 A、B 和 master 合并到 C

1.4K20

通过 41 问答方式快速了解学习 Git

当然可以大多数 git 工作流下,分支通常会累积来自多个其他分支更改,最终这些分支会被合并到分支。 18. 应该从一非常老分支做一 rebase 吗? 除非是迫不得已。...根据你工作流,可以将旧分支合并到分支如果你需要一最新分支,更喜欢 rebase。只提供更改且更清晰历史记录,而不是来自其他分支或合并提交。...21.与 master 合并之前,有必要更新分支吗 根据你工作流,可以将旧分支合并到分支如果工作流仅使用 "fast-forward"合并,那么有必要在合并之前更新你分支。...当然,某些可视化操作(如管理分支和查看文件差异)GUI总是更好。个人认为合并过程浏览器查看这些内容就足够了。 23. 当提交已经被推送时,可以做一 --amend 修改吗?...如果 A 和 B 不能合并到 master,可以简单地将 B 合并到 C ,因为 B 已经包含了 A 变更。 极端情况下,可以将 A、B 和 master 合并到 C

1.6K50

你需要了解有关 Node.js 所有信息

它还可以用来构建混合移动应用、桌面应用甚至用于物联网领域。 真的很喜欢已经使用 Node.js 工作了 6 年。这篇文章试图成为了解 Node.js 工作原理终极指南。...也许你想知道为什么线程不能同时处理 2 或更多请求?这是因为阻塞了 Input/Output 操作。 假设你正在开发一在线商店应用,并且需要一页面,用户可以在其中查看您所有产品。...这个问题是一台服务器机器上同时运行 10,000 客户端链接。 为什么我们传统 “thread-per-request” 模式不能够解决这个问题?现在让我们做一些数学运算。...但是,如果不能解决 C10K 问题,为什么 Node.js 可以?好吧,因为它是单线程。...建议总是很好奇,如果您知道事情进展,您将做出更好决定。 伙计们,到此为止。希望您对 Node.js 有所了解。 感谢您阅读,下一篇文章相见。❤️

93322

敲黑板!你和GitHub高手就差这三条规则······

Request 将代码合并到 Master 分支 即使你项目非常简单或者你只是单独工作只要在每次编程时遵循这三条规则,你很快就可以成为 Git 和 GitHub 使用高手。...相反,你应该使用特性分支,并打开一 PR,将特性分支代码与分支代码合并。 现实工作,会有人查看你 Pull Request,并在批准前进行代码审查。...例如,如果另一开发人员推送到分支更改影响了你修改过文件时,就会发生这种情况。...即使你单独工作,也要习惯于创建 Pull request,以便将更改合并到分支。这是几乎所有开源项目使用基本工作流程。如果你曾经贡献过某个项目,理解这三规则将让你贡献很容易被接受。...结语 如果你仍然感到困惑,那就慢慢来,记住这三条规则。不要试图去想「如何做」,而要专注于「做什么」和「为什么」。 一旦「做什么」和「为什么」清楚了,时机成熟时你就能知道「如何做」了。

57721
领券