0

テキストファイルから文字列を読み取ろうとしています。読んだ後、配列または変数に変換したいと思います。テキスト ファイルでは、'b' を読み取ることができます。'b' を xに署名しx='b'ます。'b'bs = sin(2*pi*x)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テキストファイルから xaxis を使用するかどうかを選択したいのでt、これを尋ねました。

4

3 に答える 3

3

原始的な形式の解析を行っています。変数 x には文字 'b' または 't' が含まれ、それを使用して式の評価方法を制御します。変数 x には文字が含まれているだけなので、変数 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)
....
于 2013-11-07T21:02:26.387 に答える
1

評価を使用できます。

例えば:

b='4'
formula = "2*x"
formula = formula.replace("x", "%d")
Result = eval(formula % int(b))
于 2013-11-07T21:03:49.780 に答える
1

文字列を変数として使用したいだけの場合は、pythons exec 関数を使用できます。

>>> 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)

それはうまくいくはずです。ただし、コードをより堅固なものに変更することをお勧めします (辞書を使用するなど)。

于 2013-11-07T21:07:44.927 に答える