如何在字符串中进行减法运算

2024-04-29 07:37:47 发布

您现在位置:Python中文网/ 问答频道 /正文

如何在python中打印addition? 我试着定义加法并告诉它打印:

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)

有人能帮忙吗?


Tags: andthenumberbyiswillnumint
2条回答

在减去之前,需要将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。

你试图减去两个字符串,这是做不到的。在执行操作之前,要先将这些字符串转换为数字:

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

相关问题 更多 >