如何在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)
有人可以帮忙吗?
答案 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是不必要的。