如何从整数后面捕获第一个非零整数?
how do I capture the first non-zero integer from the back of an integer?
def last_digit(n):
factorials = []
for i in range(1,n + 1):
i = str(i)
i = i[::-1]
for j in i:
if j != 0:
factorials.append(j)
break
对于从 1 到某个整数 n 的每个整数,我试图从每个整数的后面捕获 'first' 非零整数。
比如我们有18600,那么我要的整数就是6。
当我 运行 上面的代码在纸上工作时,但是当我 运行 它在我的 IDE 上时,它是不正确的,特别是对于 '10',它捕获零,但我认为正在发生的是我将其反转,使其变为“01”;然后内部 for 循环将捕获第一个非零值。
您可以先将数字转换为字符串,然后执行此操作:
def last_digit(n):
factorials = []
for i in range(1,n + 1):
i = str(i)
factorials.append(i.strip('0')[-1])
return factorials
strip
函数将删除字符串开头和结尾的所有零,然后使用索引 -1 可以获得最后一个字符。
要实现这一点,您应该首先将整数 'n' 转换为字符串,然后以相反的顺序遍历它。
下面是演示这个的代码。
def last_digit(n):
n=str(n)
rev=n[::-1] # Reversing the string 'n'
for i in rev:
if i!='0' :
print(i)
break
def last_digit(n):
factorials = []
for i in range(1,n + 1):
i = str(i)
i = i[::-1]
for j in i:
if j != 0:
factorials.append(j)
break
对于从 1 到某个整数 n 的每个整数,我试图从每个整数的后面捕获 'first' 非零整数。
比如我们有18600,那么我要的整数就是6。
当我 运行 上面的代码在纸上工作时,但是当我 运行 它在我的 IDE 上时,它是不正确的,特别是对于 '10',它捕获零,但我认为正在发生的是我将其反转,使其变为“01”;然后内部 for 循环将捕获第一个非零值。
您可以先将数字转换为字符串,然后执行此操作:
def last_digit(n):
factorials = []
for i in range(1,n + 1):
i = str(i)
factorials.append(i.strip('0')[-1])
return factorials
strip
函数将删除字符串开头和结尾的所有零,然后使用索引 -1 可以获得最后一个字符。
要实现这一点,您应该首先将整数 'n' 转换为字符串,然后以相反的顺序遍历它。 下面是演示这个的代码。
def last_digit(n):
n=str(n)
rev=n[::-1] # Reversing the string 'n'
for i in rev:
if i!='0' :
print(i)
break