2017-02-11 8 views
-4

私はオンラインのPythonの競争に参加していましたが、私は小規模な操作で立ち往生しましたが、 事はそれです 私は整数0000を文字列に変換する必要があります。しかし、str(0000)を使うことによって、同様に出力として「0」しか得られません。同様に、0001,0003,0000,00045,0003のような数値に変換する必要があります。数字をゼロにしたintをPythonの文字列に変換するにはどうすればよいですか?

I am expecting str(0000)='0000' 
+4

これは意味をなさない。 「0000」は数字「0」またはゼロである。通訳者は余分なゼロを保存することになっていることを知ることはできません。 – TigerhawkT3

+0

どこから番号を取得しましたか? – math2001

+4

私も混乱しています、最初に整数として与えられた場合、ゼロがいくつあるかをどのように知っていますか? –

答えて

-4

これは数え切れないかもしれませんが、ちょっとしたことです。

str(0000)*4 

これ以外の方法はありませんが、先頭の0を持つintは自動的に削除されるため、私はかなり確信しています。

編集:これは文字通り、何かの引数として先行するゼロをintに与えることができないため、唯一ゼロで動作します。構文エラーが発生します。

+0

私は投票されたことに気付きました。これは私が知る限り、有効な答えです。そうでないと思うなら、理由を説明してください。 –

+0

私は投票しませんでしたが、あなたのソリューションは '0123'のような入力のためにどのように機能しますか? – Fallen

+0

0の場合にのみ機能し、(その整数のどこにも格納されていないため)ハードコーディングするには "長さ"を知っていなければなりません。なぜなら、単純に '' 0000 ''と書くのではなく? – TigerhawkT3

0

私は上記のコメントを追加するには十分な評判がなく、私は初心者です。しかし、zfillソリューションについて言及しましたが、私はそれについてコメントしたいと思います。私はいくつかのテストを行った:

x = 0000 
print str(x).zfill(4) 
y = 00045 
print str(y).zfill(5) 

>>>0000 
>>>00037 
>>>[Finished in 0.04s] 

ご覧のとおり、OPで提供されている他のいくつかの例では動作していないようです。

0

この場合、0045はインタープリタによって8進数とみなされるため、Jonathanの例では0045が37になります。 4×8 + 5 = 37となる。通常、このような場合、先行ゼロで始めることはありません。私たちは45から始めます。したがって、答えは一貫しています。文字列形式の先頭の0は、インタプリタが8進表現を理解する方法を提供します。お役に立てれば。

関連する問題