Python 3.x 名称错误:名称';价值';没有定义

Python 3.x 名称错误:名称';价值';没有定义,python-3.x,nameerror,Python 3.x,Nameerror,(背景第一:我是编程新手,目前正在上大学的第一堂“编程入门课”。这是我们关于函数的第二次作业。到目前为止,函数对我来说是一件痛苦的事情,因为它们没有任何意义。例如:你可以使用miles\u gas(gas),但不要使用miles\u gas(miles\u gas)其他任何地方,但该程序仍在运行???(无论如何) 好吧,我在网上到处都找过了,找不到答案。一切都在使用“例外”和“尝试”以及所有高级的东西。我是新来的,所以我不知道什么是例外,也不想尝试,也不想使用它们,因为我的老师还没有分配过类似的

(背景第一:我是编程新手,目前正在上大学的第一堂“编程入门课”。这是我们关于函数的第二次作业。到目前为止,函数对我来说是一件痛苦的事情,因为它们没有任何意义。例如:你可以使用miles\u gas(gas),但不要使用miles\u gas(miles\u gas)其他任何地方,但该程序仍在运行???(无论如何)

好吧,我在网上到处都找过了,找不到答案。一切都在使用“例外”和“尝试”以及所有高级的东西。我是新来的,所以我不知道什么是例外,也不想尝试,也不想使用它们,因为我的老师还没有分配过类似的任务

我的项目是制作一个程序,在输入您的房产价格时为您提供评估值和房产税。这是我想出的代码(根据我班上的视频,以及书中的视频)

在运行它时,我让它问“诸如此类的输入价格:”所以我输入价格,然后我得到一个巨大的红色错误,说

Traceback (most recent call last):
      File "C:/Users/Gret/Desktop/chapter3/exercise6.py", line 41, in <module>
      main()
File "C:/Users/Gret/Desktop/chapter3/exercise6.py", line 24, in main
show_value(value)
NameError: name 'value' is not defined
回溯(最近一次呼叫最后一次):
文件“C:/Users/Gret/Desktop/chapter3/exercise6.py”,第41行,在
main()
文件“C:/Users/Gret/Desktop/chapter3/exercise6.py”,第24行,在main中
显示_值(值)
NameError:未定义名称“值”

但我确实定义了“价值”。。。那么为什么它会给我一个错误???

当你定义一个函数时,它需要参数来接受。在函数的括号中传递这些参数,定义函数时,为函数命名这些参数。我马上给你举个例子

基本上,当你调用函数时,你已经给它传递了一个参数,但是在你的定义中,你没有一个参数,所以它不知道如何处理它

更改此行:

def show_value():
def show_value(price):
关于这一行:

def show_value():
def show_value(price):
显示价值
显示价值(价格)

例如:

在这种类型的错误中:

def addition(a,b):
    c = a + b
    return c

addition() # you're calling the function, 
           # but not telling it the values of a and b
由于您的错误:

def addition():
    c = a + b
    return c

addition(1,2) # you're giving it values, but it 
              # has no idea to give those to a and b
函数的问题是,这些变量只存在于函数中,参数的名称也不重要,只是顺序而已。我理解这是令人沮丧的,但如果你继续以更开放的心态进行编程,我保证你会很感激的。如果要保留这些值,只需在末尾返回它们。您可以通过编写
返回c、a、b
并像这样编写调用
sum、number1、number2=加法(1,2)
来返回多个变量

另一个问题是,我可以这样调用加法函数:

b = 1
a = 2
addition(b,a)
现在在函数内部,a=1和b=2,因为它不是关于变量名,而是关于我将它们传递给函数的顺序


您也不需要将TAX传递到show_TAX,因为TAX已经是一个全局变量。它是在函数外部定义的,因此可以在任何地方使用。此外,您不希望通过传递tax来显示税,而是希望将值传递给它。但因为show_value没有返回值,所以您丢失了它。因此,将show value中的值返回给一个变量,比如So
value=
show\u value(price)

Python是词汇范围的。函数中定义的变量在函数外部不可见。您需要从函数返回值,并将它们分配给要使用这些值的作用域中的变量。在您的情况下,
value
是本地的
show\u value

三次检查您在
def main()
中所做的工作,并重新阅读老师到目前为止所涵盖的(或书中的内容)的可变范围部分