【问题标题】:Variable assignment is not possible in the loop(for) [duplicate]在循环(for)中不可能进行变量赋值[重复]
【发布时间】:2019-10-31 15:06:25
【问题描述】:

我正在建立一个基于 python 的数据程序,并想解决这个“for-loop”和“变量赋值”问题。

我正在使用 python 3.7.2 和 jupyter notebook


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没有定义。

【问题讨论】:

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


    【解决方案1】:

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

    变量a_i 是一个唯一命名的标量变量,称为“下划线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])
    
    

    【讨论】:

    • 我发现是因为解析问题。计算机将 'a_i' 本身理解为一个符号,因此 'a_1', ... 'a_2' 不​​能赋值。
    猜你喜欢
    • 2012-10-24
    • 1970-01-01
    • 2019-12-27
    • 2019-06-26
    • 1970-01-01
    • 2023-03-12
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多