为什么我需要在与循环相同的块中声明累加器变量?

时间:2015-07-31 22:56:05

标签: python-2.7 accumulator

我已经设置了累加器算法,但我在包含累加器循环的代码块(在本例中为main())之外初始化了累加器变量:

alphabet = ""

def main():
    # 97 - 122 are the ASCII codes for the lower case alphabet
    for i in range( 97, 123 ):
        alphabet += chr( i )
    print alphabet

main()

出于某种原因,我得到了这个:

  

UnboundLocalError:局部变量'字母'在分配前引用

解决方案我发现在与循环相同的块内初始化变量。

def main():
    alphabet = ""

    # 97 - 122 are the ASCII codes for the lower case alphabet
    for i in range( 97, 123 ):
        alphabet += chr( i )
    print alphabet

main()

我的问题 为什么是必要的?

我是否正确地概括了问题并假设我需要在与循环相同的块中初始化变量,或者我的问题是否与此示例有关?

我是否缺少某些蟒蛇特质?

1 个答案:

答案 0 :(得分:0)

将此字母表+ = chr(i)视为alphabet = alphabet + chr(i)的简写。您正在尝试将chr(i)添加到字母表中,并且第一次执行此字母表尚不存在。