Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python UnboundLocalError:局部变量';除以';分配前参考_Python_Scope - Fatal编程技术网

Python UnboundLocalError:局部变量';除以';分配前参考

Python UnboundLocalError:局部变量';除以';分配前参考,python,scope,Python,Scope,这个程序被设计成输入一个数字,并产生它的所有主要因素。 我以前没有使用任何函数,但现在我正在尝试实现它们,以便在我的程序中获得更多功能 divide = 2 factors = [] def nextNumber(): userInput = input("enter a number to generate factors:\n") # number = int(userInput) half = (number / 2) halfFixed = int

这个程序被设计成输入一个数字,并产生它的所有主要因素。 我以前没有使用任何函数,但现在我正在尝试实现它们,以便在我的程序中获得更多功能

divide = 2
factors = []

def nextNumber():
    userInput = input("enter a number to generate factors:\n") #
    number = int(userInput) 

    half = (number / 2) 
    halfFixed = int(half) 

    for x in range (0, halfFixed): # make second arg half of user number 
        result = number % divide

        if result == 0:
            factors.append(divide)

        divide +=1

nextNumber()
print (factors)
当我尝试运行它时,输入命令被读取,我可以输入一个数字,但一旦输入,我就会得到错误,“UnboundLocalError:赋值前引用的局部变量'divide'”
任何帮助都将不胜感激。

您正在函数中分配给
divide
,使其成为局部变量:

divide +=1
在首次分配值之前,任何其他使用
divide
的操作都会引发
UnboundLocal
异常

如果您希望它是一个全局的,请使用
global
关键字告诉Python:

def nextNumber():
    global divide

    userInput = input("enter a number to generate factors:\n") #
    number = int(userInput) 

    half = (number / 2) 
    halfFixed = int(half) 

    for x in range (0, halfFixed): # make second arg half of user number 
        result = number % divide

        if result == 0:
            factors.append(divide)

        divide +=1

看看右边的一些问题。这就可以了,非常感谢,如果这是一个重复的问题,我对这个网站有点陌生。