2016-10-15 6 views
1

Python 2で書かれた次のコードをPython 3と互換性のあるコードに変換しようとしています。ここでPython TypeError: - 'str'と 'str'のためのサポートされないオペランドタイプ

File "C:/Users/brand/AppData/Local/Programs/Python/Python35-32/Ch‌​ange Maker.py",

line 5, in CHANGE = MONEY - PRICE

TypeError: unsupported operand type(s) for -: 'str' and 'str'

私が使用していたコードです:Pythonの3の

PRICE = input("Price of item: ") 
MONEY = input("Cash tendered: ") 
CHANGE = MONEY - PRICE 
print ("Change: ", CHANGE) 
+1

あなたは?あなたが直面している問題に関するすべての出力や詳細を提供してください。 –

+0

アイテムの価格:28.92 現金出納:64.55 トレースバック(最新のコール最後): ファイル "C:/ Users/brand/AppData/Local/Programs/Python/Python35-32/Change Maker.py"、行5 、in CHANGE = MONEY - PRICE TypeError: - : 'str'と 'str'に対応していないオペランドタイプ – Brandon

+0

コメントにメッセージを入れないでください。あなたの答えを編集してください。とにかくエラーメッセージが含まれています! 「別のエラーメッセージです」というようなものはありません。彼らは重要な詳細を持っています。 –

答えて

4

input()は、あなたが期待しているとしてこのように、PRICEMONEYが文字列ではなく整数であり、Pythonの2にraw_input()に相当しています。

この問題を解決するには、整数にそれらを変更します。

PRICE = int(input("Price of item: ")) 

MONEY = int(input("Cash tendered: ")) 
+0

私はまだそれを試した後も問題があります。もう1つのエラーメッセージ。 – Brandon

+1

@Brandonエラーメッセージを表示してください – TerryA

+0

価格は整数である必要はありません。実際には、上記のコメントの入力例を使用すると、おそらく彼が得ているエラーです。したがって、 'int'ではなく' float'への変換がより適切です。 – jez

0

inputはまた、お金のため

のPython 3での文字列を返し、私が推薦しているどのようなエラーdecimal起因するfloat lack of precision

import decimal 
price = decimal.Decimal(input("Price of item: ")) 
money = decimal.Decimal(input("Cash tendered: ")) 
change = money - price 
print("Change: {change}".format(change=change)) 
関連する問題