按升序和降序排列数字:ascending = "".join(sorted(str(number)))
descending = "".join(sorted(str(number), reverse=True))
喜欢这个:>>> number = 5896
>>> ascending = "".join(sorted(str(number)))
>>>
>>> descending = "".join(sorted(str(number), reverse=True))
>>> ascending
'5689'
>>> descending
'9865'
并且,如果您需要再次将它们作为数字(不仅是字符串),请对它们调用int():>>> int(ascending)
5689
>>> int(descending)
9865
2020-01-30>>> def kaprekar(number):
... diff = None
... while diff != 0:
... ascending = "".join(sorted(str(number)))
... descending = "".join(sorted(str(number), reverse=True))
... print(ascending, descending)
... next_number = int(descending) - int(ascending)
... diff = number - next_number
... number = next_number
...
>>> kaprekar(2777)
2777 7772
4599 9954
3555 5553
1899 9981
0288 8820
2358 8532
1467 7641