Python:交换数字中的数字

时间:2017-10-12 01:38:49

标签: python string digits

这是我试图编写的程序:

编写一个程序,它总是产生两个三位数的总和,派生自 两个其他三位数字的差异,如1089,提供了最初的 所选数字的第一个和第三个数字相差两个或更多。为此,请提示 用户给你一个三位数的号码,例如532.拿这个号码,532,交换 得到235的第一个和最后一个数字。现在减去235(两个数字中较小的一个) 从532(两个数字中较大的一个),结果是297.取得差异, 297,并切换其第一个和第三个数字得到792.添加297到792,结果是 1089.如果用户未获得1089作为结果,请通知他/她原始条目 第一个和最后一个数字相差小于2.

这是我到目前为止所做的,它给了我一个错误。我是python和编程的新手,所以如果你能帮助我,我将不胜感激。

这是我到目前为止所做的:

Have user give 3 digit number

threeDigit = str(input("Please enter a 3 digit number without spaces between the numbers.\t"))

#Exchange first and last digits

exchangedNumber = str(threeDigit)[::-1]
print(exchangedNumber)

#Subtract smaller number from greater one

numberOne = exchangedNumber - threeDigit
numberTwo = threeDigit - exchangedNumber

if exchangedNumber>threeDigit: print(numberOne)

if threeDigit>exchangedNumber: print(numberTwo)

2 个答案:

答案 0 :(得分:1)

您可能需要这样才能实现结果

numberOne = int(exchangedNumber) - int(threeDigit)
numberTwo = int(threeDigit) - int(exchangedNumber)

您需要将它们转换为整数类型才能获得预期的结果,最初是字符串类型。了解有关type conversions的更多信息

答案 1 :(得分:0)

另一个建议:

threeDigit = str(input("Please enter a 3 digit number without spaces between the numbers.\t"))

print(threeDigit)
exchangedNumber = str(threeDigit)[::-1]
print(exchangedNumber)

substractexchangednumber = abs(int(exchangedNumber) - int(threeDigit))

print(substractexchangednumber)
exchangedNumber = str(substractexchangednumber)[::-1]
print(exchangedNumber)
print(substractexchangednumber + int(exchangedNumber))