Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.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 为什么代码会抛出错误';变量';没有定义_Python - Fatal编程技术网

Python 为什么代码会抛出错误';变量';没有定义

Python 为什么代码会抛出错误';变量';没有定义,python,Python,我的代码: def divide(x,y): div = divmod(x,y) return div query = input("Enter numbers separated with a comma to divide: ") divide(int(query.split(',')[0]),int(query.split(',')[1])) print(div) 为什么会抛出错误: NameError: name 'div' is not defined. 因

我的代码:

def divide(x,y):

    div = divmod(x,y)
    return div

query = input("Enter numbers separated with a comma to divide: ")
divide(int(query.split(',')[0]),int(query.split(',')[1]))
print(div)
为什么会抛出错误:

NameError: name 'div' is not defined.  

因为
div
是一个局部变量,并且是
divide
函数的局部变量,所以它在其他任何地方都是未知的。您可以尝试以下任一方法:

  • 在打印函数中调用函数:

    def divide(x,y):
      div = divmod(x,y)
      return div
    
    query = input("Enter numbers separated with a comma to divide: ")
    print(divide(int(query.split(',')[0]),int(query.split(',')[1])))
    
  • 或使用全局变量:

    def divide(x,y):
      div = divmod(x,y)
      return div
    
    query = input("Enter numbers separated with a comma to divide: ")
    div = divide(int(query.split(',')[0]),int(query.split(',')[1]))
    print(div)
    

  • 因为
    div
    是函数
    divide
    中的一个局部变量,您试图将其作为全局变量访问

    该代码应为:

    def divide(x,y):
        div = divmod(x,y)
        return div
    
    query = input("Enter numbers separated with a comma to divide: ")
    print(divide(int(query.split(',')[0]),int(query.split(',')[1])))
    

    因为它不存在于该范围内。从您的问题历史来看,您已经使用PHP一段时间了?它的工作原理完全相同。如果您想了解更多信息:@Ryan是的,我使用PHP有很长一段时间了,但从来没有遇到过这样的PHP。当您直接进行打印时,这不会消除函数divide()的用途吗?我想用defNo,如果你只想打印它,它就不会。如果你想稍后使用,那么使用第二种方法,它将其存储在一个全局变量中。第二种方法不使用全局变量,它只是外部作用域中的一个普通变量,恰好与函数中的局部变量同名。@mkrieger1这意味着它是一个全局变量,其他函数可以使用关键字
    global
    访问和修改它。