如何计算Python中的位数?

cod*_*ior -1 python-2.7

我正在尝试编写一个计算给定数字中位数的函数.这是我的功能:

def num_digits(n):
    """
    >>> num_digits(12345)
    5
    >>> num_digits(0)
    1
    >>> num_digits(-12345)
    5
    """
    count = 0
    while n > 0:
        if n == 0:
            count += 1
        count += 1
        n = n/10

    return count

if __name__=="__main__":
    import doctest
    doctest.testmod(verbose=True)
Run Code Online (Sandbox Code Playgroud)

但是这个功能不起作用.while循环的条件应该是什么?

小智 12

这是一个定义的方法:

def numLen(num):
  return len(str(abs(num)))
Run Code Online (Sandbox Code Playgroud)


Mia*_*Kim 6

from math import log, ceil
print(int(ceil(log(number+1, 10))))
Run Code Online (Sandbox Code Playgroud)

log()返回近似值,因此需要添加1. ceil()是因为我们需要整数