我有这个函数,就是给我传递的数字的最后一位数字。有没有办法获取除最后一个数字之外的所有数字?
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'