如何在字符串中进行减法
我想知道在Python中怎么打印加法的结果。我试着定义了加法,然后让它打印出来:
subtraction = int(number - reverse(number))
print str(subtraction)
但是它总是显示:
追踪(最近的调用最后):
文件 "C:\Python25\Castor's Python Programs\proj02.py",第 16 行,在 <module>
subtraction = int(number - reverse(number))
类型错误:不支持的操作数类型(-):'str' 和 '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 个回答
1
你需要先把 number
转换成整数(int),然后再进行减法。这里的 number
是个字符串,这有点让人困惑,因为它是通过 raw_input
获取的,而 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
已经是整数了,所以不需要再转换成整数。
4
你正在尝试把两个字符串相减,但这是不行的。你需要先把这些字符串转换成数字,然后再进行计算:
subtraction = int(number) - int(reverse(number))