如何在字符串中进行减法

时间:2014-08-06 23:35:07

标签: python string math addition

如何在python中打印添加? 我试图定义添加并告诉它打印:

subtraction = int(number - reverse(number)) print str(subtraction)

但它总是说:

Traceback (most recent call last): File "C:\Python25\Castor's Python Programs\proj02.py", line 16, in <module> subtraction = int(number - reverse(number)) TypeError: unsupported operand type(s) for -: 'str' and 'str'

这是我的完整代码:

import sys
def reverse(num):
        return (num)[::-1]

print "This is a puzzle favored by einstein. You will be asked to enter a three digit number, where the hundred's digit differs from the ones digit by at least two. The procedure will always yield 1089."
number = raw_input("Give me a number:")
print "For the number: "
print number
print " the reverse number is: "
print reverse(number)
print "The difference between "
print number
print" and "
print reverse(number)
print " is "
subtraction = int(number - reverse(number))
print  str(subtraction)
print "The reverse difference is: "
print  str(reverse(subtraction))
print "The sum of: "
print subtraction
print " and revDiff is: "
finaladdition = int(subtraction - reverse(subtraction))
print str(finaladdition)

有人可以帮忙吗?

2 个答案:

答案 0 :(得分:4)

您正在尝试减去两个字符串,但这些字符串无法完成。您希望在执行操作之前先将这些字符串转换为数字:

subtraction = int(number) - int(reverse(number))

答案 1 :(得分:1)

在减去之前,您需要将number转换为int。 number这里是一个容易混淆的字符串,因为它是由raw_input设置的,它返回一个字符串。

subtraction = int(number) - int(reverse(number))

要使print str(reverse(subtraction))工作subtraction必须转换为字符串,因为它是通过减法设置的int。因此:

print  str(reverse(str(subtraction))) 

但是reverse将返回一个字符串,因此不需要前面的str。

print  reverse(str(subtraction))

此外,finaladdition = int(subtraction - reverse(subtraction))需要成为:

finaladdition = int(subtraction) - int(reverse(str(subtraction)))

我们必须先将subtraction转换为字符串,然后再将其传递给reverse,因为reverse使用它的参数就好像它是一个字符串一样。在第一部分中,subtraction已经是一个int,因此将其转换为int是不必要的。