【问题标题】:Modify a python variable which is inside a loop修改循环内的python变量
【发布时间】:2021-05-07 12:05:15
【问题描述】:

我一直在尝试编写需要修改循环内变量的代码。

a = 1
b = 2
while a<b:
    print(b)

现在我想在循环运行时更改 b 的值。 我试图找到答案,但无法做到。 是否有可能我使用初始值为 b 的循环并自动终止此循环并在变量 b 修改为其他值时启动一个新循环? 这怎么可能? 注意:我想从外部修改 var b。

进一步说明:

代码的设计方式应该是,当循环已经运行时,可以修改用于检查 while 循环条件的变量。 假设用户想将此 while 循环用作函数,他在函数中传递变量以启动循环。现在他想改变变量值(在上面的例子中是var b),它在while循环条件中使用。

def start_loop(a,b):
   while a<b:
     #more codes will be included here
     print('The loop is running infinitely')



#call the function 
 start_loop(1,2) 
 Consol: The loop is running infinitely....

循环无限运行,因为循环已经在运行我不能要求 while 循环更改 var b 的值。 我正在寻找可以处理这种情况的解决方案。 当循环已经运行时,用户如何从外部修改“var b”?

或者我如何使用修改后的 var b 值调用相同的 start_loop() 函数?这样做应该会导致旧循环的终止和新循环的开始。

我希望我能在这里找到答案:) 谢谢。

【问题讨论】:

  • 你的代码实际上应该做什么?
  • 我很困惑。您可以直接修改 while 块中 b 的值,是什么阻止了您? “从外部修改 var b”。在什么之外?为什么全局变量标签是相关的?我认为如果你发布一个更具包容性的代码 sn-p 它会很有启发性。
  • @Reti43 代码的设计方式应使用于检查 while 循环条件的变量可以在循环已经运行时进行修改。假设用户想将此 while 循环用作函数,他在函数中传递变量来启动循环。现在他想更改变量值(在上述情况下为 var b),该值用于 while 循环条件。 def start_loop(a,b): while a&lt;b: # more codes will be included here print('The loop is running infinitely ')
  • @Reti43 # 调用函数 start_loop(1,2) 控制台:循环无限运行,因为循环已经在运行我不能要求 while 循环更改 var b 的值。我正在寻找可以处理这种情况的解决方案。当循环已经运行时,用户将如何从外部修改“b”?或者如何使用修改后的 var b 值调用相同的 start_loop() 函数?这样做会导致旧循环的终止和新循环的开始。我把 global var 作为一个标签,因为我认为如果可能的话,它可以通过 global vars 来解决。
  • 听起来您希望您的函数start_loop 并行运行,同时您还希望在函数之外运行更多代码。按照您的方式,while 循环将阻塞其他所有内容,因为它将无限期地运行。此外,函数中的b 与外部作用域中的b 不同。您可以在函数内部修改它而不影响另一个。你到底想做什么?

标签: python loops variables while-loop global-variables


【解决方案1】:

如果你想在运行循环的同时做你所说的,也许这个链接的内容会帮助你pytho.org。 如果解决方案已发布,请访问以下链接:eval()exec()

【讨论】:

  • 谢谢 Delta,我刚刚尝试了您提供的链接中的一些代码,我认为这会起作用。我将进一步探索这个 python 协程。
猜你喜欢
  • 1970-01-01
  • 2014-11-09
  • 2021-08-29
  • 2013-05-27
  • 2017-11-02
  • 1970-01-01
  • 2011-02-19
  • 1970-01-01
  • 2020-03-01
相关资源
最近更新 更多