[英]Python: swapping digits in a number
这是我正在尝试编写的程序:
编写一个程序,它总是产生两个三位数的总和,从另外两个三位数的差派生出来,作为 1089,前提是最初选择的数字的第一个和第三个数字相差两个或更多。 为此,提示用户给您一个三位数字,例如 532。取这个数字 532,交换第一位和最后一位数字得到 235。现在从 532 中减去 235(两个数字中较小的一个) (两个数中较大的一个),结果是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)
你可能需要这个来达到你的结果
numberOne = int(exchangedNumber) - int(threeDigit)
numberTwo = int(threeDigit) - int(exchangedNumber)
您需要将它们转换为整数类型以获得预期的结果,最初是字符串类型。了解有关类型转换的更多信息
另一个建议:
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))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.