def digital_root(num): if len(str(num))==1: print('=>',num) else: arr=list(str(num)) print('=>','+'.join(arr)) s=sum(map(int,arr))#map(函数,序列)对序列中的每个元素进行相应的函数操作 #此处把字符串的各个元素转化为整型 #s=list(map(int,arr)) #[2, 2, 2, 3, 4, 5] if len(str(s))>1: print('=>',s,'...') digital_root(s) #递归 digital_root(222345) # => 2+2+2+3+4+5 # => 18 ... # => 1+8 # => 9 解法二 def digital_root1(num): str_num=str(num) if len(str_num)==1: return str_num else: return digital_root1(sum([int(i) for i in str_num])) digital_root(222345)