如何根据不同的条件生成一些Python脚本?

2024-09-29 23:21:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我想根据不同的条件生成一些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之前添加计算tempVariable所需的部分。当然,它看起来很难看,更重要的是我想把它运到其他人可以使用它。我很感激如果有任何更好的和通用的方法。在我的实际应用程序中,我有94个不同的条件或案例,如果我想把它们放在一些ifelif语句下,那将非常难看。任何建议或想法都将不胜感激。你知道吗


Tags: 文件importnumpytxt脚本区域ifas
3条回答

如果不需要在运行时更改条件,但在执行程序时: 您可以在文件的开头添加常量变量,也可以创建一个类似parameters的文件,并存储所有条件以及该文件中哪个条件是活动的。 然后导入该文件并获取活动条件(参数)并充当它。你知道吗

使用lambdas。你知道吗

下面是一个例子来说明这个想法。你知道吗

lambdas = [None]*4

lambdas[0] = lambda i : i

lambdas[1] = lambda i : i**2

lambdas[2] = lambda i : i**3

lambdas[3] = lambda i : i + 4.34


for i in range(0, 10):
    print( "=====  ", i )
    print( lambdas[0](i) )
    print( lambdas[1](i) )
    print( lambdas[2](i) )
    print( lambdas[3](i) )

如果您总是使用多项式,则可以有一个传递给函数的系数列表。你知道吗

对于您提供的条件,对象如下:

mylist = [[0,1,0,0],[0,0,1,0],[0,0,0,1],[4.34,1,0,0]]

那么您的第n条条件行只需读取:

Condition: tempVariable = mylist[n][0] + mylist[n][1]*i + mylist[n][2]*i**2 + mylist[n][3]*i**3 

通过建立一个广义条件,您将不需要这个函数的多个副本

相关问题 更多 >

    热门问题