基本变量索引

时间:2015-07-08 20:34:37

标签: python python-2.7

如何在Python中使用简单的索引/数组? 例如,在传统的BASIC语言中,您所需要做的就像

10 Dim V(5)
20 For N = 1 to 5:V(N)=2^N+1/N:? N,V(N):Next

将输出:

1  3.0
2  4.5
3  8.33333333333
4  16.25
5  32.2

如果我想要高斯求积的权重,我可以这样做:

UL=5
[x,w] = p_roots(UL)
for N in range(UL):
     print N,w[N]

有效:

1  0.236926885056
2  0.478628670499
3  0.568888888889
4  0.478628670499
5  0.236926885056

但是如果我尝试我的BASIC,就像它似乎是

UL=5
for N in range(1,UL+1):
    V[N]=2**N+1.0/N
    print N,V[N]

将其拒绝为

    V[N]=2**N+1.0/N
NameError: name 'V' is not defined

如果我试图模仿高斯的例子

UL=5
[V]=2**UL+1.0/UL
for N in range(1,UL+1):
    print N,V[N]

我得到了

    [V]=2**UL+1.0/UL
TypeError: 'float' object is not iterable

就数组/索引而言,V [N]与w [N]不同(在其示例中有效)? 所有Python文档似乎都会涉及更复杂的案例,而不提供更多基本的例子。

1 个答案:

答案 0 :(得分:1)

您的错误似乎很清楚:在您的第一个中您根本没有定义V(与您使用Dim V的BASIC版本相比)而在您的第二个中您已将V分配给单个值(2 ** UL + 1.0 / UL),而不是值列表。

但是,您应该注意Python列表不是数组,并且您没有调整它们的大小。相反,你可以通过追加来组合它们。例如,在第一个版本中:

UL = 5
V = []
for N in range(1,UL+1):
    V.append(2**N+1.0/N)