求解python习题,阿尔法乘积,要求while循环

计算一个无符号整数的阿尔法乘积。对于一个无符号整数x来说,它的阿尔法乘积是这样来计算的:如果x是一个个位数,那么它的阿尔法乘积就是它本身;否则的话,x的阿尔法乘积就等于它的各位非0的数字相乘所得到的那个整数的阿尔法乘积。例如,4018224312的阿尔法乘积等于8,它是经过以下的几个步骤计算出来的:

4018224312->418224312->3072

3072->372->42

42->4*2->8

【输入形式】

一个整数x。
【输出形式】

整数x的阿尔法乘积。
【样例输入】

4018224312

【样例输出】

8

n=input()
if len(n)==1:
    print(n)
else:
    while len(n)!=1:
        s=1
        for i in n:
            if i!='0':
                s*=int(i)
        n=str(s)
    print(n)
import functools as ft 

def Alpha(n):
    if len(str(n)) == 1 :
        return n
    else:
        return Alpha(ft.reduce(lambda x, y:x * y , map(int, str(n).replace('0', '')), 1) )
    
x = Alpha(4018224312)
print(x)