你再掐我试试 发表于 2020-2-1 19:23:03

关于报错 local variable 'lits11' referenced before assignment

各位大神好:
       本小白尝试写了一个显示字符串长度的函数,如下:
      

def count(x,y):
    result1 = 0
    list1 = list(x)
    list11 = []
    while list1:
      lits11 += list1.pop()
      result1 += 1
    print('第一个字符串的字符数有:',result1)

    result2 = 0
    list2 = list(y)
    list22 = []
    while list2:
      lits22 += list2.pop()
      result2 += 1
    print('第二个字符串的字符数有:',result2)
      
x = input('请输入第一个字符串:')
y = input('请输入第二个字符串:')
count(x,y)


但是报错显示(错误在第6行lits11 += list1.pop()):UnboundLocalError: local variable 'lits11' referenced before assignment
我上网搜了一下,知道这个报错的意思是这一变量在被引用前没有被定义,可我在第4行不是已经定义了它是一个空列表吗?
今天刚刚看了小甲鱼关于局部变量和全局变量的视频,我知道这个list11在函数中属于局部变量,而且也仅仅在函数中运行。那么这个报错与局部变量有关系吗?如果没有,那么它报错的原因是什么?

冬雪雪冬 发表于 2020-2-1 20:07:27

lits11----- list11

你再掐我试试 发表于 2020-2-1 20:15:15

冬雪雪冬 发表于 2020-2-1 20:07
lits11----- list11

你好,我不太理解你的答复。能说的详细一些吗?

冬雪雪冬 发表于 2020-2-1 20:31:03

你再掐我试试 发表于 2020-2-1 20:15
你好,我不太理解你的答复。能说的详细一些吗?

拼写错误
lits11 += list1.pop()
应该是
list11 += list1.pop()

你再掐我试试 发表于 2020-2-1 20:36:43

冬雪雪冬 发表于 2020-2-1 20:31
拼写错误
lits11 += list1.pop()
应该是


woc,哈哈哈。傻了。。
页: [1]
查看完整版本: 关于报错 local variable 'lits11' referenced before assignment