如何在字符串中进行减法

-1 投票
2 回答
10121 浏览
提问于 2025-04-18 16:19

我想知道在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))

撰写回答