簡體   English   中英

如何在Python中對數字進行排序並獲得另一個數字?

[英]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用作intstr 您需要在必要時在strint之間轉換:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM