(背景第一:我是编程的新手,目前是我在我大学的第一个“编程课程入门”。这是我们处理函数的第二个任务。到目前为止,函数一直是痛苦的屁股对我来说,因为他们没有任何意义。例如:你可以使用miles_gas(气体),但不要在其他任何地方使用“miles_gas”,但程序仍然运行??,无论如何)
好的,我在网上看了很多,无法找到答案。一切都在使用“异常”和“尝试”以及所有高级内容。我很新,所以我不知道有什么例外,或尝试,我也不在乎使用它们,因为我的老师还没有分配这样的东西。
我的项目是制作一个程序,在您输入房产价格时为您提供评估价值和物业税。这是我提出的代码(遵循我班级和书中的视频)
ASSESSMENT_VALUE = .60
TAX = 0.64
def main():
price = float(input('Enter the property value: '))
show_value(value)
show_tax(tax)
def show_value():
value = price * ASSESSMENT_VALUE
print('Your properties assessment value is $', \
format(value, ',.2f'), \
sep='')
def show_tax(value,TAX):
tax = value * TAX
print('Your property tax will be $', \
format(tax, ',.2f'), \
sep='')
main()
运行它后,我得到它问“等等进入价格:”所以我输入价格然后我得到一个巨大的红色错误说
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
但我DID定义'价值'......那为什么它会给我一个错误?
答案 0 :(得分:1)
Python是词法范围的。函数中定义的变量在函数外部不可见。您需要从函数返回值并将它们分配给要使用值的范围中的变量。在您的情况下,value
是show_value
的本地。
答案 1 :(得分:0)
定义函数时,需要参数。在函数的括号中传递这些参数,定义函数时,为函数命名参数。我会暂时向你展示一个例子。
基本上发生的事情是你在调用它时传递了一个参数函数,但在你的定义中你没有参数,所以它不知道如何处理它。
更改此行:
def show_value():
到这一行:
def show_value(price):
show_value
到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
关于函数的事情,就是那些变量只存在于函数中,而且参数的名称也无关紧要,只有订单。我理解这令人沮丧,但如果你以更开放的心态进行编程,我保证你会很感激。如果你想保留这些值,你只需要在最后返回它们。您可以通过编写return c, a, b
并编写此sum, number1, number2 = addition(1,2)
另一个问题是我可以像这样调用我的加法函数:
b = 1
a = 2
addition(b,a)
现在在函数中,a = 1和b = 2,因为它不是关于变量名,而是关于我将它们传递给函数的顺序。
您也不需要将TAX传递给show_tax,因为TAX已经是一个全局变量。它是在函数外部定义的,因此可以在任何地方使用。此外,您不希望将税收传递给show_tax,您希望将值传递给它。但是因为show_value没有返回值,所以你已经丢失了它。因此,将show value中的值返回给value =
show_value(price)
等变量。