为 python 生成整数中的所有数字,除了最后一个数字



我有这个函数,就是给我传递的数字的最后一位数字。有没有办法获取除最后一个数字之外的所有数字?

def lastdigit(num):
out = num%10
return out
def all_digits_except_last(num):
if abs(num) < 10:
return None # view comment
out = num // 10
return out

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

但是,您可能会争辩说,没有必要检查一位数,如下所述。

尝试乘法:

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

输出:

1235

为什么不只是

def not_last(x):
return x // 10

另一种方法:

>>> 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]

你可以为此使用切片。 喜欢:-

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

处理数字最好通过将整数转换为字符串来完成。

def firstdigits(num):
return str(num)[:-1]
firstdigits(121) # '12'

最新更新