3

次のコードの出力は次のとおりです。

int("12", 5) 
O/P: 7

int("0", 5)
O/P: 0

int("10", 2)
O/P: 2

私はこれを理解することはできません。Python のドキュメントには次のように書かれています: "[, base]" の部分はオプションです。つまり、1 つまたは 2 つの引数を取る場合があります。

最初の引数は、必ず引用符内に int 値を持つ文字列にする必要があります。

4

5 に答える 5

6

int(string, base)任意のベースを受け入れます。おそらく、2 進法と 16 進法、そしておそらく 8 進法に精通しているでしょう。これらは、さまざまな基数で整数を表記する方法にすぎません。

  • binary は基数 2 (0 と 1) の数値を表します
  • 8 進数は 8 進数 (0、1、2、3、4、5、6、および 7) の数値を表します
  • 10 進数は、10 進数 (0 から 9) である整数について話すために日常 (西洋) 生活で使用されるものです。
  • 16 進数は 16 進数です (0 から 9、次に A、B、C、D、E、F)。

各基数は、表記の各「位置」が取り得る値の数を決定します。10 進数では、9 まで数えてから、10 を数える位置を追加します。つまり、110かける 10、0 かける 1を意味します。99 を超えて数えると、3 桁目が追加されます。2 進数では 2 桁しかないため、1かける2 と 0 かける 1まで数えた後、そして まで数えた後です。11011100

base引数は整数の基数であり、2、8、10、または 16 に限定されません。基数 5 は、数値が 0 から 4 までの数字を使用して表現されることを意味します。10 進数の 10 は基数 5 になります。たとえば20、(2回 5)。

int(string, 5)次に、文字列を 5 進数として解釈し、その値を反映する Python 整数を生成します。

>>> int('13', 5)  # one time 5, 3 times 1  == 8
8
>>> int('123', 5)  # one time 5**2 (25), 2 times 5, 3 times 1  == 38
38

基数 5 の数字を指定する必要がある場合は、おそらくpentalと呼ばれます。

于 2015-11-12T04:41:19.070 に答える
0

int 関数は、ベース「base」で表されているかのように文字列を返しています。たとえば、基数 2 (バイナリ) の 10 は基数 10 (10 進数) の 2 です。基数 5 の 12 は 1*5^1 + 2*5^0 = 7 です。

于 2015-11-12T04:33:00.297 に答える
0

ここで base は、最初の引数を関連付ける必要がある数体系です。数体系が 2 進数の場合と同様に、「10」は 10 進数で 2 を意味します。同様に、数体系の 3 進法の「10」は 10 進法の 3 を意味します。詳細については、数体系と数体系間の変換のしくみについて学習します。ところで、私たち人間は 10 進数 (0 ~ 9) をよく理解していますが、コンピューターは 2 進数を理解しています。

于 2015-11-12T04:33:13.527 に答える
0

この事実は次のように説明できます:
関数呼び出しがint("12",5)であるとします。これは、(12) が基数 5 であり、それを 10 進数に変換するように要求していることを意味します。つまり、基数 10 の数値に変換します。

というわけで、簡単なルールは

(12)base 5 = 1*(5 ^ 1) + 2*(5 ^ 0)
           = 5 + 2
           = 7

他のベースからも同様の変換を行うことができます。

于 2017-04-01T04:46:47.980 に答える