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:未定义名称't'”。在一些stackoverflow问题中,有建议使用

from array import array

但我仍然得到一个错误。我从 NameError 尝试了该解决方案: name 'array' is not defined in python。请帮助摆脱这个错误。

谢谢。

贾巴巴

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 回答