我有这个功能,可以给我所传递号码的最后一位。有没有办法获得除最后一位以外的所有数字?
def lastdigit(num):
out = num%10
return out
答案 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'