我正在寻找一种Python方式来计算正整数的二进制表示形式中的尾随零数n(这将指示最大幂2除n而无余数)。
n
2
一个简单的解决方案:
def CountZeros(n): c = 0 while (n % 2) == 0: n /= 2 c += 1 return c
但是,为了以更Python化的方式进行操作,我认为我可以利用:
bin(n)[2:]
bin(n)[:1:-1]
因此,我的问题可以简化为对字符串中的尾随零进行计数。
有任何单一陈述的方式可以做到这一点吗?
我的最终目标是一种Python的方法,用于计算其最大幂2除n而无余数,因此不通过计数字符串中的尾随零来实现此目的的任何方法也应受到赞赏。
您可以使用str.rstrip:
str.rstrip
def trailing(s): return len(s) - len(s.rstrip('0'))