为python产生一个整数,除最后一个数字外的所有数字

时间:2018-09-19 03:28:33

标签: python python-3.x

我有这个功能,可以给我所传递号码的最后一位。有没有办法获得除最后一位以外的所有数字?

def lastdigit(num):
    out = num%10
    return out

6 个答案:

答案 0 :(得分:2)

def all_digits_except_last(num):
    if abs(num) < 10:
        return None # view comment

    out = num // 10
    return out

此代码段 integer 将数字除以10得到除最后一个数字以外的所有数字-然后将其返回。它还检查整数是否只有一位数字-如果是这种情况,它将返回None

但是,您可能会争辩说,无需按以下所述检查一位数字。

答案 1 :(得分:1)

尝试相乘:

def lastdigit(num):
    return int(num*0.1)
print(lastdigit(12355))

输出:

1235

答案 2 :(得分:1)

为什么不只是

def not_last(x):
    return x // 10

答案 3 :(得分:0)

另一种方法:

>>> def digits(n):
        if n==0: yield 0
        while n>0:
            yield n%10
            n = n/10


>>> n = 123456
>>> all_digits_except_last = [d for d in digits(n)][1:]
>>> all_digits_except_last
[5, 4, 3, 2, 1]

答案 4 :(得分:0)

您可以为此使用切片。 像:-

    def except_last_digit(num):
        convert_to_str = str(num)
        length_of_str = len(convert_to_str)
        except_last_digit = 
        convert_to_str[0:length_of_str-1]
        convert_to_int = int(except_last_digit)
        return convert_to_int

答案 5 :(得分:0)

最好将整数转换为字符串来处理数字。

def firstdigits(num):
    return str(num)[:-1]

firstdigits(121) # '12'