1. ホーム
  2. python

[解決済み] TypeError: can't multiply sequence by non-int of type 'float'」と表示されるのはなぜですか?

2022-05-14 11:16:03

質問

販売金額(入力)に定義された消費税(0.08)を掛け、合計金額(消費税×販売金額)を表示させるために入力しています。

このエラーに遭遇しました。どなたか、何が問題なのか、または何か提案があれば教えてください。

salesAmount = raw_input (["Insert sale amount here \n"])
['Insert sale amount here \n']20.99
>>> salesTax = 0.08
>>> totalAmount = salesAmount * salesTax

Traceback (most recent call last):
  File "<pyshell#57>", line 1, in <module>
    totalAmount = salesAmount * salesTax
TypeError: can't multiply sequence by non-int of type 'float'

どのように解決するのですか?

raw_input は文字列(文字の列)を返します。Pythonでは、文字列とfloatの掛け算は定義された意味を持ちません(一方、文字列と整数の掛け算は意味を持ちます。 "AB" * 3"ABABAB" はいくらですか? "L" * 3.14 ? 返信しないでください "LLL|" ). 文字列を解析して数値にする必要があります。

試してみるとよいでしょう。

salesAmount = float(raw_input("Insert sale amount here\n"))