我想根据不同的条件生成一些Python脚本。它的意思是:我的Python脚本有一个常量,在所有不同的条件下都是完全相同的,但是由于我有几个不同的条件,这些Python脚本中有一些区域需要修改。假设这是我不变的部分,在所有条件下都是相似的:
import numpy as np
variables = []
for i in range(100):
 variables.append(tempVariable)
print variables我有4个不同的条件,其中tempVariable的计算方式不同:
条件1:tempVariable = i
条件2:tempVariable = i**2
条件3:tempVariable = i**3
条件4:tempVariable = i + 4.34
请注意,我不想使用if语句来切换这四种条件,因为这些条件实际上是不同的情况,不相关。最后,我希望对这四种不同的条件和情况独立地使用variables。我的想法是将这四种情况或条件放入一个txt文件中,并将Python脚本的常量部分作为另一个txt文件,并遍历所有这四个条件或情况,并在将其附加到variables之前添加计算variables的必要部分。当然,它看起来很难看,更重要的是,我想把它寄给其他人,以便能够使用它。如果有更好的和通用的方法,我很感激。在我的实际应用程序中,我有94个不同的条件或情况,如果我想将它们放在一些if或elif语句下,这将是非常糟糕的。任何建议或想法都会受到赞赏。
发布于 2019-09-23 20:18:36
最后,我找到了一个解决方案,这个解决方案更适合于有无数条件(即1000个不同条件)的情况。实际上,我将所有命令放在一个文本文件中,该文本文件可以自动解析和读取,如下所示:
commands.txt
tempVariable = i
tempVariable = i**2
tempVariable = i**3
tempVariable = i + 4.34然后,我像这样阅读和执行它们:
def Execute(command):
 variables = []
 for i in range(100):
  exec(command)
  variables.append(tempVariable)
 print variables
if __name__ == "__main__":
 conditions = open('commands.txt').read().split('\n')[:-1]
 map(Execute, conditions) 发布于 2019-09-19 16:38:12
如果您总是使用多项式,则可以得到传递给您的函数的系数列表。
对于您所提供的条件,对象如下:
mylist = [[0,1,0,0],[0,0,1,0],[0,0,0,1],[4.34,1,0,0]]那么,您的nth条件行只需阅读:
Condition: tempVariable = mylist[n][0] + mylist[n][1]*i + mylist[n][2]*i**2 + mylist[n][3]*i**3 通过建立一个广义条件,您将不需要这个函数的多个副本
发布于 2019-09-19 16:34:18
如果您不需要在运行时更改条件,而是在执行程序时:您可以在文件的开头添加常量变量,或者您可以创建一个像parameters这样的文件,并存储该文件中的所有条件以及哪个条件是活动的。然后导入该文件并接受活动条件(参数)并充当它的角色。
https://stackoverflow.com/questions/58015230
复制相似问题