编写一个 Python 程序,使用 While 循环、函数和递归来计算数字中的位数。
Python 程序:使用 While 循环计算数字中的位数
此 Python 程序允许用户输入任何正整数。然后,它将给定的数字分解为单个数字,并使用 While 循环计算这些单个数字。
# using While loop
Number = int(input("Please Enter any Number: "))
Count = 0
while(Number > 0):
Number = Number // 10
Count = Count + 1
print("\n Number of Digits in a Given Number = %d" %Count)

此程序允许用户输入任何正整数。然后将该数字赋值给 Number 变量。接下来,While 循环中的条件确保给定的数字大于 0(表示正整数且大于 0)。
在此 Python 计算数字位数程序中,用户输入的为:Number = 9875,Count = 0
第一次迭代
Number = Number // 10 => 9875 //10
Number = 987
Count = Count + 1 => 0 + 1
Count = 1
第二次迭代:从第一次Python迭代开始,两个变量的值都发生了变化:Number = 987,Count = 1。
Number = 987 // 10
Number = 98
Count = 1 + 1
Count = 2
第三次迭代:在第二个计算数字中位数的程序迭代中,Number = 98,Count = 2。
Number = 98 // 10
Number = 9
Count = 2 + 1
Count = 3
第四次迭代:对于第四次迭代,Number = 9,Count = 3。
Number = 9 // 10
Number = 0
Count = 3 + 1
Count = 4
此时 Number = 0。因此,while 循环中的条件失败。
最后一个 print 语句使用 Count 变量作为输出,打印出给定数字中的位数。因此,变量 9875 的输出为 4。
Python 程序:使用函数计算数字中的位数
此Python 程序允许用户输入任何正整数。然后,它将给定的数字分解为单个数字,并使用函数计算这些单个数字。
# using Functions
def Counting(Number):
Count = 0
while(Number > 0):
Number = Number // 10
Count = Count + 1
print("\n Number of Digits in a Given Number = %d" %Count)
Counting(1234)
OR
def Counting(Number):
Count = 0
while(Number > 0):
Number = Number // 10
Count = Count + 1
return Count
Number = int(input("Please Enter any Number: "))
Count = Counting(Number)
print("\n Number of Digits in a Given Number = %d" %Count)
Please Enter any Number: 123456789
Number of Digits in a Given Number = 9
当执行到 Counting (Number) 行时,编译器会立即跳转到下面的函数。
def Counting(Number):
最后一行以 return Count 语句结束。
Python 程序:使用递归计算数字中的位数
此程序将给定的数字分解为单个数字,并使用递归计算这些单个数字。
Count = 0
def Counting(Number):
global Count
if(Number > 0):
Count = Count + 1
Counting(Number//10)
return Count
Number = int(input("Please Enter any Number: "))
Count = Counting(Number)
print("\n Number of Digits in a Given Number = %d" %Count)
Please Enter any Number: 12345
Number of Digits in a Given Number = 5
在 Counting (Number) 函数定义中,下面的语句帮助递归地调用具有更新值的函数。
Counting(Number//10)
如果缺少此语句,在完成第一行后,程序将终止。例如:
Number = 1234
那么输出是 1。