问题描述
需要编写一个函数,接收正整数“numbers”和位数“n”和 返回数字中数字的乘积。 使用模和映射函数并且没有循环。 这是我目前所拥有的:
def digits(n):
n = n % 10
def calc_digits(number,n):
list1 = list(map(digits(number),number))
但我得到“int”对象不可迭代
解决方法
在没有循环的情况下做到这一点的唯一方法是使用递归,这实际上只是伪装的循环:
def calc_digits( number ):
if number:
return number % 10 * calc_digits(number // 10)
else:
return 1
print( calc_digits( 12345) )
我确实想出了一个单线:
import functools
import operator
def calc_digits(digits):
return functools.reduce(operator.mul,map(int,str(digits)))