[英]How to sort the digits of a number and get another number in Python?
Python的初學者,並嘗試編寫此程序:
a = 0
number = int(input("Choose a four digit number: "))
while number != 6174: #Kaprekar's constant
sorted(number)
sorted(number, reverse=True)
large = "".join(sorted(number, reverse=True))
small = "".join(sorted(number))
number = (int(large) - int(small))
a += 1
print(a + "iterations.")
我收到以下錯誤:
sorted(number)
TypeError: 'int' object is not iterable
那么,怎樣才能我的數字排序number
,並得到另一個號碼?
首先,對可迭代對象sorted
不會改變可迭代對象本身。 您需要執行類似a = sorted(a)
。
現在以您的示例為例,您嘗試將number
用作int
和str
。 您需要在必要時在str
和int
之間轉換:
a=0
number = input("Choose a four digit number: ")
while number != "6174":
large = "".join(sorted(number, reverse=True))
small = "".join(sorted(number))
number = str(int(large) - int(small))
a+=1
print(a, "iterations.")
最后, a
是一個int
,因此您不能在最后一個print語句中執行int+str
。 放一個像我一樣的逗號或執行print(str(a)+" iterations")
。
為此,您可以簡單地執行以下操作:
number = input("Choose a four digit number: ")
現在,您的排序將起作用
感謝@SimonT的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.