我正在尝试从文本文件中读取字符串。在我阅读之后,我想将其转换为数组或变量。在文本文件中,我可以读取'b'我将'b'签到x,x='b'
,我想使用如何将'b'
作为变量b
以便s = sin(2*pi*x)
1}}是s = sin(2*pi*b)
。
对象: 我正在尝试设置配置文件,以便我可以轻松地从文本文件中更改输入的变量。
最后一步是我可以打印出来。
b = arange(0.0, 4.0, 0.01)
t = arange(0.0, 2.0, 0.01)
x = ['b'] // result after I read from the file
x = changestringtoVarible('b')
s = sin(2*pi*x)
plot(x, s)
xlabel('time(s)')
ylabel(y)
title(ttl)
grid(True)
我想选择是否使用b
或t
作为文本文件中的xaxis,这就是我问这个问题的原因。
答案 0 :(得分:3)
你正在做一种原始形式的解析。您的变量x将包含字符“b”或“t”,您希望使用它来控制表达式的计算方式。您不能在表达式中直接使用变量x,因为它只包含一个字符。您必须根据其值执行不同的代码。对于这样的简单情况,您可以使用if
构造:
...
b = arange(0.0, 4.0, 0.01)
t = arange(0.0, 2.0, 0.01)
if x == 'b':
xvalue = b
elif x == 't'
xvalue = t
s = sin(2*pi*xvalue)
plot(xvalue, s)
...
对于大量案例,您可以使用字典:
...
xvalues = { 'b' : arange(0.0, 4.0, 0.01),
't' : arange(0.0, 2.0, 0.01),
# More values here
}
xvalue = xvalues[x]
s = sin(2*pi*xvalue)
plot(xvalue, s)
....
答案 1 :(得分:1)
您可以使用eval。
例如:
b='4'
formula = "2*x"
formula = formula.replace("x", "%d")
Result = eval(formula % int(b))
答案 2 :(得分:1)
如果您只想使用字符串作为变量,可以使用pythons exec function:
>>> exec("some_string"+"=1234")
>>> some_string
1234
<强>更新强>
您最好在x
中使用s = sin(2*pi*x)
变量的其他名称,从现在开始我们可能会调用x
y
。
b = arange(0.0, 4.0, 0.01)
t = arange(0.0, 2.0, 0.01)
假设x
定义了应该使用哪一个,您可以使用以下代码将其分配给变量:
exec("y"+"="+x)
s = sin(2*pi*y)
那个人应该工作。但我建议你将代码改为更稳固的东西(例如使用字典)。