整数を文字列としての表現に変換する関数を実装しましたintToStr()
(以下のコード)。
テストのために、いくつかの値を渡しましたが、予期しない出力が観察されました。
print intToStr( 1223) # prints 1223 as expected
print intToStr(01223) # prints 659, surprisingly
今、私はそれをデバッグしようとしましたが、渡した整数は実際に659
.
なぜこれが起こるのですか?どうすればPythonに整数リテラルの先行ゼロを無視させることができますか?
私の関数のコードは次のとおりです。
def intToStr(i):
digits = '0123456789'
if i == 0:
return 0
result = ""
while i > 0:
result = digits[i%10] + result
i /= 10
return result