0

这是我的编码:

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'
>>>

我正在尝试做的事情:

输入评估价值 10000.0 对于价值 10,000.00 美元的房产,评估价值为 6,000.00 美元,税款为 38.40 美元

财产税:县对财产的评估价值征收财产税,为财产实际价值的 60%。例如,如果一英亩土地的价值为 10,000 美元,则其评估价值为 6,000 美元。每 100 美元评估值的财产税为 64 美分。评估为 6,000 美元的英亩税为 38.40 美元。

我需要房产的实际价值以及评估价值和房产税的显示。

我需要使用的功能:

  • 一种从用户那里获取输入
  • 一个计算所有值
  • 一个输出结果
  • 和一个调用其他三个函数的主函数
4

2 回答 2

2

您设置 actualValue=None ,然后尝试在函数中使用它,但是 a)您永远不会分配它,并且 b)在函数中分配它之前,您必须像处理其他变量一样调用 global actualValue 。如果您只是阅读@cdhowie 所指出的,则不需要使用 global

由于 actualValue 是 Nonetype 你不能将它乘以另一个数字。那是你的错误。

你可以做 3 件事中的 1 件事。

1) 如果你有 actualValue=None 将其更改为 actualValue=10000。

2)在main中设置actualValue如下:

def main():
    global actualValue
    actualValue = 10000
    ...

3)按照另一个答案的建议参数化您的函数。

于 2012-10-02T22:35:18.530 回答
1

您可能想要重写您的代码,以便它使用参数和返回值而不是全局变量。

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"), tax
于 2012-10-02T22:50:04.727 回答