2016-08-04 11 views
2

この質問は、int関数の使用法ではなく、内部的にどのように行われるかについてです。Pythonが文字列を整数に変換する方法

ソースコードはC言語で書かれているので、何が起こっているのか分かりません。

誰かが、"123"という文字列をどのようにして整数123に変換するかを説明する人もいます。 どのような操作が実行されますか?

+4

C関数を提供して、自分で検索する必要はありませんか? –

+0

「どのように動作するのか理解したいですが、それが書かれている言語を理解できず、それを学習するのではなく私に説明してほしい」というのは、私がこの質問をどのように解釈したかです。 –

+0

@ TadhgMcDonald-Jensen、あなたのインタプリタを更新することを検討してください – micgeronimo

答えて

2

Python文字列をintに変換するとき、たとえば、次のようになります。 a = int("123",10)(文字列 "123"を10の整数に変換)では、C関数が呼び出されます。

最初に、指定されたカウントベースが> = 2で、< = 36、または0(エラーがなければ)をチェックします。
次に、先頭のスペースをすべて無視します。
、(" 123" = "123"ように)と数は'-'

塩基が0である場合、それは文字列が'0x','0o', '0b', '0'で始まるかどうかを確認し、それぞれのベースを設定する(16進数、オクタル'+'正、又は負としてマークされているかどうかを確認、バイナリ、小数)。
ベースが指定されていない場合、デフォルトベースは10(10進数)です。それは、その後link posted by Paul Kehrer

末尾のスペースで、コードのコメントに記述されたアルゴリズムを使用して、数値に文字配列を回すに進み

も無視され、スペースがあるかどうエラーが例えばneeded-場合にスローされます文字列の真ん中に数字が続いていたり、数字以外の文字があるとします。

関連する問題