功能数字,对返回值感到困惑

时间:2020-01-27 19:02:02

标签: python digits

def digits(n):
    count = 0
    if n == 0:
      digits = int(n)+1
    while (n > 0 ):
        count += 1
        n = n // 10
    return count

print(digits(25))  # Should print 2
print(digits(144)) # Should print 3
print(digits(1000)) # Should print 4
print(digits(0))   # Should print 1
def digits(n):
count = 0
if n == 0:
  ___
while (___):
    count += 1
    ___
return count

print(digits(25))  # Should print 2
print(digits(144)) #Should print 3
print(digits(1000)) # Should print 4
print(digits(0))   # Should print 1

这是问题: 完成函数digits(n),该函数返回数字包含的位数。例如:25有2位数字,而144有3位数字。 我想念什么? 返回2 3 4 0

1 个答案:

答案 0 :(得分:1)

对于n等于0的情况,您只需要返回1

def digits(n):
   count = 0
   if n == 0:
      return 1
   while (n > 0):
      count += 1
      n = n//10
   return count

对于最简单的解决方案,可以将str构造函数与len一起使用。

def digits(n):
   return len(str(n))

print(digits(25))
print(digits(144))
print(digits(1000))
print(digits(0))

输出

2
3
4
1