2016-10-15 104 views
1

我想转换用Python编写的2码下面的代码是在Python 3.我收到以下错误兼容:Python的类型错误:不支持的操作类型为 - :“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'

这里是我使用的代码:

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

是什么错误你得到了吗?请提供您所遇到的问题的任何输出和/或更多的细节。 –

+0

价格:28.92 现金出价:64.55 回溯(最近一次通话最后): 文件“C:/用户/品牌/应用程序数据/本地/程序/ Python/Python35-32 /更改Maker.py”,第5行在 CHANGE = MONEY - 价格 类型错误:不支持的操作类型为 - :“海峡”和“海峡” – Brandon

+0

不要把注释的消息;编辑你的答案。并一直包含错误信息!没有“只是另一个错误信息”这样的事情。他们有关键的细节。 –

回答

4

input()在Python 3等同于在Python 2。因此raw_input()PRICEMONEY是字符串,因为你期望不是整数。

为了解决这个问题,将其更改为整数:

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

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

我想太后仍有问题。只是另一个错误信息。 – Brandon

+1

@Brandon请给我看错误信息 – TerryA

+0

价格不一定是整数。事实上这可能是他得到的错误,如果使用上面评论中的示例输入。因此,转换为'float'而不是'int'会更合适。 – 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)) 
相关问题