我正在建立一个基于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。
答案 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])