这是我的编码:
def main():
actualValued()
assessed_value()
printResult()
def actualValued():
global assessed_value
global property_tax
assessed_value = 0.6 * actualValue
property_tax = assessed_value/100*0.64
def printResult():
print( "For a property valued at"), actualValued
print( "The assessed value is"), asessed_value
print( "The property tax is"), property_tax
actualValue = None
assessed_value = None
property_tax = None
main()错误:
Traceback (most recent call last):
File "C:/Documents and Settings/Desktop/property tax.py", line 21, in <module>
main()
File "C:/Documents and Settings/Desktop/property tax.py", line 2, in main
actualValued()
File "C:/Documents and Settings/Desktop/property tax.py", line 9, in actualValued
assessed_value = 0.6 * actualValue
TypeError: unsupported operand type(s) for *: 'float' and 'NoneType'
>>>我想做的是:
输入价值为10,000.00美元的财产的评估值为10000.0,评估值为6,000.00美元,税款为38.40美元
财产税:县对财产的评估价值征收物业税,相当于财产实际价值的60 %。例如,如果一英亩土地的价值是10,000美元,它的评估价值是6,000美元。然后,物业税为每100元的评税价值64美分。每英亩6,000美元的税将是38.40美元。
我需要财产的实际价值,以及评估价值和物业税的显示。
我需要使用的功能:
发布于 2012-10-02 22:35:18
您设置了actualValue=None,然后尝试在函数中使用它,但是( a)在函数中分配它之前,必须像调用其他变量那样调用全局actualValue。如果您只阅读@cdhowie所指出的,则不需要使用全局的
由于actualValue是非类型的,所以不能将它乘以另一个数字。这就是你的错误。
你可以做三件事中的一件。
1)在有actualValue=None的地方,将其改为actualValue=10000。
2)主要设置actualValue如下:
def main():
global actualValue
actualValue = 10000
...3)按照另一个答案的建议,将您的函数参数化。
发布于 2012-10-02 22:50:04
您可能希望重写代码,以便它使用参数和返回值,而不是全局变量。
def actualValued(actualValue):
assessed_value = 0.6 * actualValue
property_tax = assessed_value/100*0.64
return assessed_value, property_tax
# get your actual value from user input e.g.
value = raw_input('Give actual value: ')
value = float(value)
assessed, tax = actualValued(value)
print( "For a property valued at"), valued
print( "The assessed value is"), asessed
print( "The property tax is"), taxhttps://stackoverflow.com/questions/12699382
复制相似问题