【问题标题】:Python storing results from a while loop inside a for loopPython将while循环的结果存储在for循环中
【发布时间】:2020-11-15 15:42:46
【问题描述】:

我有一个 for 循环,我用给定的 30k 步计算方程的解。在这个 for 循环中,有一个 while 循环,我在其中计算具有给定步长的第二个方程(从 1 到 2,步长为 0.0001 = 总共 10k 步),并尝试将结果与解决方案进行比较for循环。

每个 while 循环(10k 以内)都有一个解决方案,对应于我需要存储的第一个方程(inner_value)。因此,我总共需要存储 30k 解决方案数组。

但是,我只能存储 1 个解决方案。当我尝试在 while 循环之外追加时,它说未定义解决方案 (inner_value)。感谢您的帮助。

【问题讨论】:

  • 您的错误来源通常是由于未能为参考范围定义变量。但是,通过快速扫描您的代码,除非我遗漏了什么,否则情况似乎并非如此。您收到的错误消息到底是什么?它引用了哪个变量?
  • 当您尝试将什么附加到什么时它会抱怨,究竟是什么?不起作用的代码和错误消息在这里会有很大帮助
  • 请将您的代码减少到重现问题所需的绝对最小值。您的代码目前包含很多与问题无关的噪音。
  • 我为造成的混乱道歉。在发布到这里之前,我曾尝试简化代码,但这不是一个好主意。我添加了完整的代码。 value_out1 仅提供 1 个输出,它应该为每个 for 循环提供一组解决方案 @itprorh66
  • @OctaveL 。抱歉,这是我试图简化代码以防止任何混淆。现在,代码应该可以工作了

标签: python python-3.x numpy for-loop while-loop


【解决方案1】:
RHS1 = 4.8e1*alpha_1**(0.4)*M1**(-7./6.)*cell_12**(-0.35)*mm_30 * P**(-1.083)
previous = None
Rin1 = 1.0 # ADDED THIS LINE
while Rin1 < 2:
    print(Rin1)
    LHS1 = (Rin1**(3.125))*np.absolute(1-Rin1**(-1.5))
    Rin1 = Rin1+ss

您忘记将 Rin1 重置为默认值吧?

【讨论】:

  • 非常感谢。现在我明白我的错误有多愚蠢了。
猜你喜欢
  • 1970-01-01
  • 2022-08-03
  • 2012-09-19
  • 2015-08-24
  • 2013-09-24
  • 2014-04-05
  • 1970-01-01
  • 1970-01-01
  • 2020-10-09
相关资源
最近更新 更多