错误打印带字符串的整数

时间:2015-04-26 09:31:44

标签: python python-3.x

我是python的初学者试图写这个但不起作用。有什么帮助吗?

CP=input("enter the cost price: ")
SP=input("enter the sale price: ")
if (SP>CP):
    print ("Congratulations !! you made a profit of ", + SP-CP) 
    print("Congratulations!! you made a profit of %f" % SP-CP)
elif (CP>SP):
    print("you are in loss of %f" % CP-SP)
else:
    print("you got nothing")

3 个答案:

答案 0 :(得分:0)

简短回答

您需要在SP-CPCP-SP附近添加括号。

<强>解释

首先评估字符串格式化运算符%,但不能从字符串中减去数字。

就像你在写

print(("Congratulations!! you made a profit of %f" % SP)-CP)

但你想要的是

print("Congratulations!! you made a profit of %f" % (SP-CP))

进一步阅读

您可以找到运算符优先级(首先评估哪个运算符)here。请参见脚注8:字符串格式化运算符%具有与模运算符%相同的优先级。

答案 1 :(得分:0)

在python 3中(我假设你使用的是因为你包含的python-3.x标签),input函数返回一个字符串,你不能做数学在一个字符串上。您需要更改

CP=input("enter the cost price: ")
SP=input("enter the sale price: ")

CP = int( input("enter the cost price: ") )
SP = int( input("enter the sale price: ") )

(添加空格以显示我更改的内容)。

如上所述,您还需要在替换值周围添加括号,以便

print("Congratulations!! you made a profit of %f" % SP-CP)

变为

print("Congratulations!! you made a profit of %f" % (SP-CP) )

(编辑:本杰明以3秒的优势击败我!)

答案 2 :(得分:0)

内置输入返回一个字符串。您将需要将其转换为如下所示的浮动。当然假设浮动是你想要的。您可以使用int()。

对整数执行相同的操作
CP=float(input("enter the cost price: "))
SP=float(input("enter the sale price: "))
if (SP>CP): 
    print("Congratulations!! you made a profit of %f" % (SP-CP))
elif (CP>SP):
    print("you are in loss of %f" % (CP-SP))
else:
    print("you got nothing")