Last 2 digits of an integer? Python 3

前端 未结 4 943
不思量自难忘°
不思量自难忘° 2020-12-07 00:56

With my code, I want to get the last two digits of an integer. But when I make x a positive number, it will take the first x digits, if it is a negative number, it will remo

相关标签:
4条回答
  • 2020-12-07 01:48

    To get the last 2 digits of num I would use a 1 line simple hack:

    str(num)[-2:]
    

    This would give a string. To get an int, just wrap with int:

    int(str(num)[-2:])
    
    0 讨论(0)
  • 2020-12-07 01:49

    to get the last 2 digits of an integer.

    a = int(input())
    print(a % 100)
    
    0 讨论(0)
  • 2020-12-07 01:50

    Why don't you extract the absolute value of the number modulus 100? That is, use

     abs(num) % 100 
    

    to extract the last two digits?

    In terms of performance and clarity, this method is hard to beat.

    0 讨论(0)
  • 2020-12-07 01:54

    Simpler way to extract last two digits of the number (less efficient) is to convert the number to str and slice the last two digits of the number. For example:

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

    OR, you may achieve it via using modulo % operator (more efficient), (to know more, check How does % work in Python?) as:

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

    Sample run:

    >>> get_last_digits(95432)
    32
    >>> get_last_digits(2)
    2
    >>> get_last_digits(34644, last_digits_count=4)
    4644
    
    0 讨论(0)
提交回复
热议问题