整数的最后2位数? Python 3

时间:2017-01-15 18:37:57

标签: python python-3.x integer

使用我的代码,我想得到一个整数的最后两位数字。但是,当我将x设为正数时,它将采用前x个数字,如果是负数,则会删除前x个数字。

代码:

number_of_numbers = 1
num = 9
while number_of_numbers <= 100:
  done = False
  num = num*10
  num = num+1
  while done == False:
    num_last = int(repr(num)[x])
    if num_last%14 == 0:
      number_of_numbers = number_of_numbers + 1
      done = True
    else:
      num = num + 1
print(num)

5 个答案:

答案 0 :(得分:17)

为什么不提取数模100的绝对值?也就是说,使用

 abs(num) % 100 

提取最后两位数字?

在性能和清晰度方面,这种方法很难被击败。

答案 1 :(得分:3)

提取数字(效率较低)的最后两位数字的简单方法是将数字转换为str并切割数字的最后两位数字。例如:

# sample function
def get_last_digits(num, last_digits_count=2):
    return int(str(num)[-last_digits_count:])
    #       ^ convert the number back to `int`

或者,您可以通过使用模%运算符(更高效)来实现它,(知道更多,请检查How does % work in Python?):

def get_last_digits(num, last_digits_count=2):
    return abs(num) % (10**last_digits_count)
    #       ^ perform `%` on absolute value to cover `-`ive numbers

示例运行:

>>> get_last_digits(95432)
32
>>> get_last_digits(2)
2
>>> get_last_digits(34644, last_digits_count=4)
4644

答案 2 :(得分:2)

要获得num的最后两位数字,我会使用1行简单黑客:

str(num)[-2:]

这会给出一个字符串。 要获取int,只需使用int:

进行换行
int(str(num)[-2:])

答案 3 :(得分:1)

获取整数的后两位。

a = int(input())
print(a % 100)

答案 4 :(得分:0)

你可以试试这个:

float(str(num)[-2:])