Select Language

AI Technology Community

2.1、Python整数型及びその演算

Python 3では、整数型をintで表します。C言語やJava言語とは異なり、ここでの整数型データにはサイズ制限がなく、メモリ上で占める空間も固定されていません。

例えば、整数を32ビットで表す場合、表現できる最大値は4 294 967 295です。整数を64ビットで表す場合、表現できる最大値は18 446 744 073 709 551 615です。しかし、Python 3では何ら制限がないため、大整数という特殊なデータ型も必要ありません。

>>> 2 ** 32 – 1         # 32ビット符号なし整数の最大値
4294967295
>>> 2 ** 64 – 1         # 64ビット符号なし整数の最大値
18446744073709551615
>>> a = 2 ** 64 + 100   # 64ビット符号なし整数の最大値を超える
>>> type(a)             # 型を確認
<class 'int'>           # 整数型
>>> a                   # 値を確認
18446744073709551716
>>> a.bit_length()      # この値を表すのに必要なビット数を確認
65                      # この値を表すには65ビットの整数が必要

この節では、整数の数値演算について説明します。加算、減算、乗算、除算、べき乗演算などが含まれ、これらは整数型データの最も基本的な使い方です。

1. 四則演算(+-*/)

2つの整数に対して、加算、減算、乗算、除算を行うことができます。以下の例では、これら4つの基本操作の結果を示しています。

>>> 1+2      # 加算演算    
3            # 結果は3
>>> 1-2      # 減算演算
4    -1      # 結果は-1
>>> 200-32   # 減算演算    
168          # 結果は168
>>> 2*-9     # 乗算演算
8    -18     # 結果は-18
>>> 12/4     # 除算演算
3            # 結果は3

なお、Python 3では、除算演算で割り切れない場合、戻り値は浮動小数点数になります。例えば、5/2の結果は2ではなく、2.5になります。これはC言語やJava言語と異なり、Python 2とも異なります。

例えば、Python 3では、以下のようになります。

>>> 12/11            # 割り切れず、余りは1    
1.0909090909090908   # 結果は小数
>>> 12/7             # 割り切れず、余りは5
1.7142857142857142   # 結果は小数


注意:Pythonでは、被除数が負の場合、余りも負になります。例えば:

>>> -3/-2   # 割り切れず、被除数は-2、余りは-1    
1           # 結果は1で、2ではない
>>> -3%-2   # 余りを求める
-1          # 余りは-1で、1ではない

2. べき乗演算(**)

a**bで、aのb乗、つまりabを表すことができます。例えば:

>>> 2**2    # 2の2乗    
4           #
>>> 2**3    # 2の3乗   
8           #
>>> 3**4    # 3の4乗
81          #

3. 余りを求める(%)

注意:被除数が整数の場合、戻り値は整数になります。被除数が負の場合、戻り値は負になります。被除数が0の場合、ZeroDivisionError例外がスローされ、これは不正な操作であることを示します。例えば:

>>> 12 % 3  # 12を3で割った余り    
0           # 余りは0
>>> 12 % 5  # 12を5で割った余り     
2           # 余りは2
>>> 12%-5   # 被除数は-5、余りも0以下
-3          # 余りは-3
>>> 5 % 0   # 被除数が0、例外がスローされる
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ZeroDivisionError: integer division or modulo by zero

4. 反数(-)

反数は、絶対値が同じで符号が逆の数です。例えば、8の反数は-8で、-8の反数は8で、0の反数は0です。-を使って反数を求めることができます。

>>> a = 12    # aに値を代入    
>>> a         # aの値を表示
12
>>> -a        # aの反数
-12
>>> --a       # aの反数の反数
12
>>> a = 0     # 0の反数は0
>>> -a
0

5. 優先順位の問題

乗算と除算の優先順位は、加算と減算よりも高いです。

>>>1+2*3   # 乗算と除算の優先順位は加算と減算より高い
7         # これは1+(2*3)と同じ

反数演算子-の優先順位は、加算、減算、乗算、除算、べき乗演算よりも高いです。

>>> a=12
>>>-a+4    # 反数演算子“-”の優先順位は加算、減算、乗算、除算より高い
-8         # これは(-a)+4と同じ   
>>> -a*4   # 反数演算子-の優先順位は加算、減算、乗算、除算より高い
-48        # これは(-a)*4と同じ
>>> -a**2  # 反数演算子-の優先順位は加算、減算、乗算、除算より高い
-144       # これは(-a)**2と同じ


post
  • 26

    item of content
Pythonの基本データ型は全部で26章あります。
この章では、整数型、浮動小数点数、文字列、ブール型、リスト、タプル、セットおよび辞書など、Pythonが提供する基本的なデータ型について紹介します。また、これらのデータ型に対する演算操作についても解説します。
私たちはPythonが強タイプ言語であることを知っています。つまり、各変数の型は特定の時点でのみ確定します。言い換えれば、Pythonにおける任意の生存しているオブジェクトの型は一意です。異なる型のオブジェクトには異なる属性があり、異なる操作を実行できます。
さらに、この章の最後では変数やオブジェクトなどの概念についても触れられます。それぞれのオブジェクトには確定した型があり、各変数は特定のオブジェクトを指し示します。