Python I';I’我想用正整数和负整数来计算小数位数

Python I';I’我想用正整数和负整数来计算小数位数,python,Python,这是我的代码,它应该告诉我正整数和负整数中十进制数字的计数 def num_digits(n): count = 0 for i in range(0, len(str(n))): count += n % 10 n = n // 10 return count num_digits(2) print() print() num_digits(12) print() print() num_digits(123) 当我运行程序时,什么

这是我的代码,它应该告诉我正整数和负整数中十进制数字的计数

def num_digits(n):
    count = 0
    for i in range(0, len(str(n))):
        count += n % 10
        n = n // 10
    return count


num_digits(2)
print()
print()
num_digits(12)
print()
print()
num_digits(123)
当我运行程序时,什么也得不到
你能给我看一下正确编写的完整代码吗

def num_digits(n):
    count = 0
    for i in range(0, len(str(n))):
        print(f'count:{count} n:{n} n%10:{n%10}')
        count += n % 10
        n = n // 10
    return count


num_digits(2)
print()
print()
num_digits(12)
print()
print()
num_digits(123)

这类代码可以工作,但我需要它更好

符合您的要求的正确代码

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

print(num_digits(2))
print(num_digits(12))
print(num_digits(123))

您正在忽略函数返回的值并执行空打印。尝试打印(数字(2))为什么不:
len(str(abs(number)))
?您现在可以打印数字了,但它会向数字中添加一个,就像打印(数字(2))--它在应该打印1时打印2。。。或分配返回值并打印:
n=num\u位(2);打印(n)
。欢迎使用SO。不幸的是,这不是一个讨论论坛或教程服务。请花点时间阅读该页面上的链接和其他链接。你应该花一些时间来练习这些例子。它将向您介绍Python所提供的工具,您甚至可以开始获得解决问题的想法。如果正确,请让我知道