Python 3.x 为什么计数不作为全局值?(赋值前引用的局部变量计数)

Python 3.x 为什么计数不作为全局值?(赋值前引用的局部变量计数),python-3.x,list,Python 3.x,List,我试图在函数中使用count值,但得到一个错误“赋值前引用的局部变量‘count’”,我不能在函数中使用count=0,因为它是递归的。我还试图通过在外部定义count来保持全局性,但它给出了一个语法错误。请有人向我解释什么是错误的,以及如何修复此代码 我的代码如下: s=["abc","asd"] d="" count=0 def func(): if(count==len(s)): exit(0) else: for i in s:

我试图在函数中使用count值,但得到一个错误“赋值前引用的局部变量‘count’”,我不能在函数中使用count=0,因为它是递归的。我还试图通过在外部定义count来保持全局性,但它给出了一个语法错误。请有人向我解释什么是错误的,以及如何修复此代码

我的代码如下:

s=["abc","asd"]
d=""
count=0
def func():
     if(count==len(s)):
           exit(0)
     else:
        for i in s:
            print(i[count])
     count=count+1
     func()

func()
还试图保持全局,我得到了无效的语法

s=["abc","asd"]
d=""
global count=0
def func():
     if(count==len(s)):
           exit(0)
     else:
        for i in s:
            print(i[count])
     count=count+1
     func()

func()

您需要在函数中将count声明为全局,如下所示:

s=["abc","asd"]
d=""
count=0
def func():
     global count
     if(count==len(s)):
           exit(0)
     else:
        for i in s:
            print(i[count])
     count=count+1
     func()

func()

必须在写入变量的每个作用域中声明变量
global
。直接在行
def func():
之后添加
global count
。但是,您应该强烈考虑使用函数参数而不是全局变量来实现这一点。