2016-10-02 4 views
2

私はユーザーの入力を受け入れ、それがKaprekar番号であるかどうかを確認するプログラムをPythonで作成しようとしています。 私はまだ初心者で、多くの問題を抱えていますが、私の主な問題は解決できないようになったことです。どのようにリストにすべての可能性を追加するかということです。私はおそらく非常にうまく説明していないのでここに例があります:2つの変数を持つリストにすべての可能性を追加してください

私は数字が入ったリストを持っています ['2', '0', '2', '5']。 どうすればいいですか?2 + 02520 + 25202 + 5

これはif else文の内部にあり、入力された数字と同じになるとすぐに停止します。

Hereが現在if 1 == 0:を言うところそれはhelps-場合、それはそれらを追加する必要がありますようにコード全体が見えるものである。)

答えて

2

あなたは

a = ['2', '0', '2', '5'] 

で始まる言っ次にあなたが実行することができます

>>> [(a[: i], a[i: ]) for i in range(1, len(a))] 
[(['2'], ['0', '2', '5']), (['2', '0'], ['2', '5']), (['2', '0', '2'], ['5'])] 

可能なすべての連続した分割を取得する。

あなたはさらにそれを処理したい場合は、あなたが

>>> [(int(''.join(a[: i])), int(''.join(a[i: ]))) for i in range(1, len(a))] 
[(2, 25), (20, 25), (202, 5)] 

を経由しての数字に変更したり、質問しない直接の回答

>>> [int(''.join(a[: i])) + int(''.join(a[i: ])) for i in range(1, len(a))] 
[27, 45, 207] 
+0

ありがとうございました! – julianaakkh

+0

大歓迎です。ではごきげんよう。 –

0

をそれらを追加していますが、書くことができますすることができます数式NがKrapekar数であるかどうかをより簡潔に判断する。

>>> N=45 
>>> digits=str(N**2) 
>>> Krapekar=any([N==int(digits[:_])+int(digits[_:]) for _ in range(1,len(digits))]) 
>>> Krapekar 
True 
関連する問題