首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python算法3.2 -请帮我解决错误。?

Python算法3.2 -请帮我解决错误。?
EN

Stack Overflow用户
提问于 2012-10-02 22:31:26
回答 2查看 3K关注 0票数 0

这是我的编码:

代码语言:javascript
复制
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()

错误:

代码语言:javascript
复制
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美元。

我需要财产的实际价值,以及评估价值和物业税的显示。

我需要使用的功能:

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

回答 2

Stack Overflow用户

发布于 2012-10-02 22:35:18

您设置了actualValue=None,然后尝试在函数中使用它,但是( a)在函数中分配它之前,必须像调用其他变量那样调用全局actualValue。如果您只阅读@cdhowie所指出的,则不需要使用全局的

由于actualValue是非类型的,所以不能将它乘以另一个数字。这就是你的错误。

你可以做三件事中的一件。

1)在有actualValue=None的地方,将其改为actualValue=10000。

2)主要设置actualValue如下:

代码语言:javascript
复制
def main():
    global actualValue
    actualValue = 10000
    ...

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

票数 2
EN

Stack Overflow用户

发布于 2012-10-02 22:50:04

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

代码语言:javascript
复制
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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12699382

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档