web-dev-qa-db-ja.com

整数の最後の3桁を取得します

23457689から689、12457245から245などの整数を変更したいと思います。

数値を丸める必要はなく、文字列に変換する必要もありません。

Python 2.7でこれを行う方法についてのアイデアはありますか?

8
Luke Gatt

使用 %操作:

>>> x = 23457689
>>> x % 1000
689

%mod(つまり、 modulo )操作です。

21

正の整数と負の整数の両方を正しく処理するには:

>>> x = -23457689
>>> print abs(x) % 1000
689

保持する先頭の桁数を選択できる関数として:

import math
def extract_digits(integer, digits=3, keep_sign=False):
    sign = 1 if not keep_sign else int(math.copysign(1, integer))
    return abs(integer) % (10**digits) * sign

strへの変換を回避するための制約はあまりにも衒学的です。数値の形式が変更される可能性がある場合、または保持する必要のある末尾の数字の形式が変更される場合は、strに変換することをお勧めします。

>>> int(str(x)[-3:])
              ^^^^^ Easier to modify this than shoe-horning the mod function.
10
ely