Python > 言語 > データ型 > 数値型


Python - 言語 - データ型 - 数値型

*

*



数値型と値

edit

  • 数値型

    データ型

    生成子
    (コンストラクタ)

    値リテラルの例

    整数型

    int    

    (Integer)

    int()    

    1-,3,-125

    浮動小数点型

    float  

    (Floting Point Number)

    float()  

    10.5, 3.14, 4e-4

    複素数型

    complex

    (Complex Number)

    complex()

    10+3j

    変更不能
    イミュータブル
    (immutable)

    変更可能
    ミュータブル
    (mutable)

    基本データ

    整数型

    int型

    浮動小数点数型

    float型

整数(int)型

edit

>>> 1
1

>>> -3
-3

>>> -125
-125

>>> int()
0

>>> type(125)
<class 'int'>

浮動小数点(float)型

edit

>>> 10.5
10.5

>>> 3.14
3.14

>>> 4e-4
0.0004

>>> float()
0.0

>>> type(3.14)
<class 'float'>

複素数(complex)型

edit

>>> 10+3j
(10+3j)

>>> complex()
0j

>>> type(10+3j)
<class 'complex'>


演算子と関数

算術計算: 加減乗除,剰余,べき乗 (二項演算)

edit

  • 加算

    演算子

    x + y       

    xyの和

    減算

    演算子

    x - y       

    xyの差

    乗算

    演算子

    x * y       

    xyの積

    除算

    演算子

    x / y       

    xyの商

    除算

    演算子

    x // y      

    xyの商 (小数点以下切り捨てて整数化)

    剰余

    演算子

    x % y       

    x / yの剰余

    除算

    関数

    divmod(x, y)

    (x // y, x % y)からなるペア(タプル)

    べき乗

    演算子

    x ** y      

    xy

    べき乗

    関数

    pow(x, y)   

    xy

  • 算術計算: 加減乗除,剰余,べき乗

>>> 1+2
3

>>> 5-8
-3

>>> 3*8
24

>>> 28/5
5.6

>>> 28//5
5
  • 算術計算: 剰余

>>> 28%5
3

>>> divmod(28,5)
(5, 3)
  • 算術計算: べき乗

>>> 5**3
125

>>> pow(5,3)
125

算術計算: 符号 (単項演算)

edit

  • 符号反転

    演算子

    -x

    xの符号反転

    そのまま

    演算子

    +x

    xそのまま

    絶対値

    関数

    abs( x )

    xの絶対値または大きさ

  • 絶対値

>>> abs(-3.14)
3.14

>>> abs(3.14)
3.14

型変換

edit

  • 整数変換

    関数

    int( x )

    xの整数型への変換

    浮動小数点数変換

    関数

    float( x )

    xの浮動小数点数型への変換

    複素数変換

    関数

    complex( re )

    実部reで,虚部 ゼロ の複素数

    complex( re, im )

    実部reで,虚部imの複素数

  • 整数変換

>>> int(3.14)
3

>>> int(-3.14)
-3

>>> int("125")
125
  • 浮動小数点数変換

>>> float(3)
3.0

>>> float("3.14")
3.14
  • 複素数変換

>>> complex( 10 )
(10+0j)

>>> complex( 10, 3 )
(10+3j)

算術計算: 整数化,丸め

edit

  • 整数化,丸め

    関数

    round(x)

    xを整数に丸める.丸め方は偶数丸め

    round(x, n)

    xを小数点以下n桁に丸める.丸め方は偶数丸め

    整数化,下方向

    関数

    math.floor(x)

    浮動小数点数x以下の最大の整数値.正の数なら切り捨て.負の数なら切り捨て-1

    整数化,上方向

    関数

    math.ceil(x)

    浮動小数点数x以上の最小の整数値.正の数なら切り上げ.負の数なら切り捨て

  • 偶数への丸め(round to even)

    端数が0.5より小さいなら

    切り捨て方向へ丸める

    端数が0.5より大きいなら

    切り上げ方向へ丸める

    端数がちょうど0.5なら

    切り捨てと切り上げのうち結果が偶数となる方向へ丸める

  • 整数化,丸め

>>> round(3.1415)
3

>>> round(3.1415,1)
3.1

>>> round(3.1415,2)
3.14

>>> round(-3.1415)
-3

>>> round(-3.1415,1)
-3.1

>>> round(-3.1415,2)
-3.14
  • 整数化,下方向

>>> math.floor(3.14)
3

>>> math.floor(-3.14)
-4
  • 整数化,上方向

>>> math.ceil(3.14)
4

>>> math.ceil(-3.14)
-3

>>>

複素数演算

edit

  • 複素数演算

    メソッド

    complex.conjugate()

    複素数 complex の共役複素数

>>> (10+3j).conjugate()
(10-3j)

ビット演算

edit

  • 演算子

    x | y

    xyのビット単位 論理和

    演算子

    x ^ y

    xyのビット単位 排他的論理和

    演算子

    x & y

    xyのビット単位 論理積

    演算子

    x << n

    xnビット左シフト

    演算子

    x >> n

    xnビット右シフト

    演算子

    ~x

    xのビット反転

>>> bin( 0b0101 | 0b1100 )
'0b1101'

>>> bin( 0b0101 ^ 0b1100 )
'0b1001'

>>> bin( 0b0101 & 0b1100 )
'0b100'

>>> bin( 0b0101 << 2 )
'0b10100'

>>> bin( 0b0101 >> 2 )
'0b1'

>>> bin( ~ 0b0101 )
'-0b110'
  • メソッド

    int.bit_length()

    整数を、符号と先頭の0は除いて
    二進法で表すのに必要なビット数

    メソッド

    int.to_bytes(length,  byteorder="big"                 )

    整数を表すバイト列

    int.to_bytes(length,  byteorder="little"              )

    整数を表すバイト列

    int.to_bytes(length,  byteorder="big",    signed=True )

    整数を表すバイト列

    int.to_bytes(length,  byteorder="big",    signed=False)

    整数を表すバイト列

    int.to_bytes(length,  byteorder="little", signed=True )

    整数を表すバイト列

    int.to_bytes(length,  byteorder="little", signed=False)

    整数を表すバイト列

    クラスメソッド

    int.from_bytes(bytes, byteorde="big"                  )

    バイト列の整数表現

    int.from_bytes(bytes, byteorde="little"               )

    バイト列の整数表現

    int.from_bytes(bytes, byteorde="big",     signed=True )

    バイト列の整数表現

    int.from_bytes(bytes, byteorde="big",     signed=False)

    バイト列の整数表現

    int.from_bytes(bytes, byteorde="little",  signed=True )

    バイト列の整数表現

    int.from_bytes(bytes, byteorde="little",  signed=False)

    バイト列の整数表現

>>> bin(1024)
'0b10000000000'

>>> (1024).bit_length()
11

>>> bin(-1024)
'-0b10000000000'

>>> bin(-1023)
'-0b1111111111'
>>> (-1024).bit_length()
11

浮動小数点計算

edit

  • メソッド

    float.as_integer_ratio()

    浮動小数点数floatを分数で表現した整数対.分母が正

    →例外: 無限大に対しては OverflowError を送出する

    →例外: 非数 (NaN) に対しては ValueError を送出する

    メソッド

    float.is_integer()

    浮動小数点数floatが有限の整数値かどうか判定する

    メソッド

    float.hex()

    浮動小数点数floatの 16 進文字列表現

    (常に 0x で始まり, p と指数が続く)

    クラスメソッド

    float.fromhex(s)

    16 進文字列表現 s で表される浮動小数点数

    文字列 s は前後に空白を含んでいてもよい

>>> (3.14).as_integer_ratio()
(7070651414971679, 2251799813685248)

>>> (x, y) = (3.14).as_integer_ratio()

>>> x/y
3.14

>>> (314.0).is_integer()
True

>>> (314.05).is_integer()
False

>>> (3.14).hex()
'0x1.91eb851eb851fp+1'

>>> float.fromhex("0x1.91eb851eb851fp+1")
3.14
*

リファレンス

*



Software Engineering(IIJIMA, Tadashi -- Keio Univ.)



*

SoftEng: Python/Lang/DataType/Numeric (last edited 2018-09-28 12:24:47 by TadashiIijima)