作者:victor | 来源:互联网 | 2023-05-21 15:55
我希望将一个整数,如23457689更改为689,12457245到245等.
我不要求对数字进行舍入,也不希望必须转换为String.
有关如何在Python 2.7中完成此操作的任何想法?
1> Warren Wecke..:
使用%
操作:
>>> x = 23457689
>>> x % 1000
689
%
是mod
(即modulo
)操作.
2> ely..:
正确处理正整数和负整数:
>>> 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.
"价值永远不会改变......"每个程序员都说过.