如何分數和選擇一些p

2024-04-23 07:16:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个变量持有x长度的数字,在实时我不知道x。我只想得到除以这个值为二。例如:

   variable holds a =  01029108219821082904444333322221111
   I just want to take last 16 integers as a new number, like
              b = 0  # initialization
              b = doSomeOp (a)
              b = 4444333322221111 # new value of b

我怎样才能除以整数?你知道吗


Tags: tointegersnumbernewas数字variablelike
3条回答
>>> a = 1029108219821082904444333322221111
>>> a % 10**16
4444333322221111

或者,使用字符串操作:

>>> int(str(a)[-16:])
4444333322221111

如果事先不知道数字的“长度”,可以计算:

>>> import math
>>> a % 10 ** int(math.log10(a)/2)
4444333322221111
>>> int(str(a)[-int(math.log10(a)/2):])
4444333322221111

当然,对于数字的“另一半”,是

>>> a // 10 ** int(math.log10(a)/2)   # Use a single / with Python 2
102910821982108290

编辑:

如果你真正的问题是“我如何将一个字符串分成两半”,那么它就是

>>> a = "\x00*\x10\x01\x00\x13\xa2\x00@J\xfd\x15\xff\xfe\x00\x000013A200402D5DF9"
>>> half = len(a)//2
>>> front, back = a[:half], a[half:]
>>> front
'\x00*\x10\x01\x00\x13¢\x00@Jý\x15ÿþ\x00\x00'
>>> back
'0013A200402D5DF9'

我只需要在这里通过把它转换成一个字符串来分解切片,取一个切片并将其转换回一个数字。你知道吗

b = int(str(a)[-16:])

一种方法是:

b = int(str(a)[len(str(a))/2:])

相关问题 更多 >