0

私はPythonの初心者で、基本を学び始めました。ここにPythonのサンプルプログラムがあります

#Simple Program Python
tf=float(input("Enter total time of run in seconds "))
delt = float(input("Enter the time step of run "))
dx = float(input("Enter the value of dx "))
xf = float(input("Enter the total length of a channel "))
n =float(tf/delt)
#t =range[n]

from array import array

m = xf/dx
for i in range(0,int(n)) :
    t[i]=i*tf/n

print("THe total time of run is %r " %tf)
print("seconds")
print("The time step is %r" %delt)
print("Number of steps is %r" %n)
print("The number of space step in X direction is %r " %m)

forループで、t [i]を評価しようとすると、「NameError:name't'isnotdefined」というエラーがスローされます。いくつかのstackoverflowの質問では、使用する提案がありました

from array import array

しかし、それでもエラーが発生します。NameErrorからその解決策を試しました:名前'配列'はPythonで定義されていません。このエラーを取り除くために助けてください。

ありがとう。

Jdbaba

4

1 に答える 1

2

tインデックスを作成する前に作成する必要があります。これを試してください。

m = xf/dx
t = []
for i in range(0,int(n)) :
    t.append(i*tf/n)

線を引くこともできますfrom array import array。配列ではなくリストを作成して使用しています。Pythonを学んでいるだけなら、おそらく配列は必要なく、リストでも問題ありません。

実際には、forループ全体を次のように置き換えることもできます。

m = xf/dx
t = [i*tf/n for i in range(int(n))]

このバージョンでは、リスト内包表記を使用して同じことを実行します。それはほぼ確実に速く、(私の意見では)理解しやすいです。

于 2013-02-09T03:02:05.367 に答える