我正在尝试编写一个计算给定数字中位数的函数.这是我的功能:
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)
from math import log, ceil
print(int(ceil(log(number+1, 10))))
Run Code Online (Sandbox Code Playgroud)
log()返回近似值,因此需要添加1.
ceil()是因为我们需要整数
| 归档时间: |
|
| 查看次数: |
46221 次 |
| 最近记录: |