循环中无法进行变量分配

时间:2019-06-18 02:51:25

标签: python python-3.x for-loop variable-assignment

我正在建立一个基于python的数据程序,并想解决此“循环”和“变量分配”问题。

我正在使用python 3.7.2和jupyter笔记本


for i in range(10):
    a = 1
    a_i = 2


print(a)
print(a_i)
print(a_1)




1
2
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-14-ffb07f4b1734> in <module>
      6 print(a)
      7 print(a_i)
----> 8 print(a_1)

NameError: name 'a_1' is not defined

我希望a_1应该为2,因为它是在for循环中分配的。 我的意思是a_1〜a_9都应该是2,但a_i是2。我不明白为什么未定义a_1〜a_9。

1 个答案:

答案 0 :(得分:1)

因为那不是变量的工作方式。

变量a_i是一个唯一命名的标量变量,称为“ a下划线i”。 i与称为“ i”的另一个完全不相关的标量变量没有任何关系。如果有的话,如果在循环中使用“ item_id”之类的变量会发生什么,您是否希望将其扩展为“ 1tem_1d”和“ 2tem_2d”?

尝试

a = []

for i in range (0,5):
   a.append( i * 2 )

print (a[1])
print (a[2])

您还可以使用字典。

a = {}

for i in range (0,5):
   a[i] = i * 2

print (a[1])
print (a[2])