2

こんにちは、私は Python が初めてで、簡単な電卓を作って練習しています。このプログラムでは、食事、税金、チップの数値を入力できますが、計算を行うと次のエラーが発生します。

Traceback (most recent call last):
  File "C:/Users/chacha04231991/Desktop/pytuts/mealcost.py", line 5, in <module>
    meal = meal + meal * tax
TypeError: can't multiply sequence by non-int of type 'str'

コードは次のとおりです。

meal = raw_input('Enter meal cost: ')
tax = raw_input('Enter tax price in decimal #: ')
tip = raw_input('Enter tip amount in decimal #: ')

meal = meal + meal * tax
meal = meal + meal * tip

total = meal
print 'your meal total is ', total
4

4 に答える 4

1

入力を文字列から数値 (整数など) に変換する必要があります。

meal = int(raw_input('Enter meal cost: '))
tax = int(raw_input('Enter tax price in decimal #: '))
tip = int(raw_input('Enter tip amount in decimal #: '))

小数の金額を入力する必要がある場合は、小数タイプを使用することもできます。

from decimal import Decimal 
meal = Decimal(raw_input('Enter meal cost: '))
tax = Decimal(raw_input('Enter tax price in decimal #: '))
tip = Decimal(raw_input('Enter tip amount in decimal #: '))

丸め誤差が発生するため、これにはフロートを使用しないことをお勧めします。

于 2012-12-20T10:41:50.210 に答える
1

raw_input を使用すると、取得する入力の型はstr

>>> meal = raw_input('Enter meal cost: ')
Enter meal cost: 5
>>> type(meal)
<type 'str'>

アクションを実行する前にint/に変換する必要がありますfloat

>>> meal = int(raw_input('Enter meal cost: '))
Enter meal cost: 5
>>> type(meal)
<type 'int'>
于 2012-12-20T10:42:02.853 に答える
0

Pythonでは、入力はデフォルトで文字列です。乗算する前に、整数に変換する必要があります。

int(meal)
int(tax)
int(tip)

トリックを行う必要があります。

文字列をFloatまたはIntに解析します

于 2012-12-20T10:44:15.840 に答える