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%である資産の評価額に対して固定資産税を徴収します。たとえば、1エーカーの土地の価値が10,000ドルの場合、その評価額は6,000ドルになります。その場合、固定資産税は、査定額の100ドルごとに64セントになります。6,000ドルと評価されたエーカーの税金は38.40ドルになります。

不動産の実際の価値と、査定額と固定資産税の表示が必要です。

使用する必要のある関数:

  • ユーザーからの入力を取得するための1つ
  • すべての値を計算するための1つ
  • 結果を出力するための1つ
  • 他の3つの関数を呼び出すためのメイン関数
4

2 に答える 2

2

actualValue = Noneを設定してから、関数で使用しようとしますが、a)割り当てることはなく、b)関数内で割り当てる前に、他の変数で行ったようにグローバルactualValueを呼び出す必要があります。@cdhowieが指摘したように、読んでいるだけの場合は、グローバルを使用する必要はありません。

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 に答える