0

私はPythonの初心者で、この宿題では投資の将来価値を得る必要があります。

p = raw_input("[How much did you invest?]:")
r = str(raw_input("[How much is the interest rate?]:"))
n = raw_input("[How long have you been investing?]:")
future_value = p*(1+1)**n
print "\n\n\tYour future value of your investment is: %s\n" % future_value

エラーコード:

unsupported operand type(s) for ** or pow(): 'int' and 'str'

ヘルプはありますか?

4

2 に答える 2

1

関数が返すintため、入力をにキャストする必要がありますraw_inputstring

インタラクティブ ターミナルに入力help(raw_input)すると、次の定義が表示されます。

raw_input(...)
    raw_input([prompt]) -> string

固定コード:

p = int(raw_input("[How much did you invest?]:"))
r = float(raw_input("[How much is the interest rate?]:"))
n = int (raw_input("[How long have you been investing?]:"))
future_value = p*(1+1)**n
print "\n\n\tYour future value of your investment is: %s\n" % future_value
于 2013-09-22T01:56:33.613 に答える
1

エラー メッセージは、整数を文字列で累乗しようとしていることを示しています。それはコードのこの部分でなければなりません:

(1+1)**n

実際、1+1 は整数です (これは 2 です。2 が必要な場合は、1+1? の代わりに 2 を書きません)。

それで、何nですか? 通話nで入手しました。raw_input()実際、raw_input()常に文字列を返します。その文字列を整数に変更したい場合 (そうします)、代わりに次のようにします。

n = int(raw_input("[How long have you been investing?]:"))
于 2013-09-22T01:57:57.183 に答える