python-添加每个大于4的数字

python-添加每个大于4的数字,python,for-loop,Python,For Loop,给定一个整数。对于大于4的每个数字,我需要将其添加到大于4的所有后续数字中。 例如:a=4567;结果应该是0+(5)+(5+6)+(5+6+7)=34 到目前为止,在我的代码中,我只能得到一位数的总和。如果整数大于10,则只给出第一个数字的和。知道为什么会这样吗 def morethanfour(number): num = 0 num = [int(d) for d in str(number)] #seperate into individual digit t

给定一个整数。对于大于4的每个数字,我需要将其添加到大于4的所有后续数字中。 例如:a=4567;结果应该是0+(5)+(5+6)+(5+6+7)=34 到目前为止,在我的代码中,我只能得到一位数的总和。如果整数大于10,则只给出第一个数字的和。知道为什么会这样吗

def morethanfour(number):
    num = 0
    num = [int(d) for d in str(number)] #seperate into individual digit  
    total = 0
    for i in range (len(num)):
        if num[i] > 4:
            total = sum(x for x in range(5, num[i]+1)) #adding the sum

    return total


num = 9
print(morethanfour(num))
num=9时的结果是35(5+6+7+8+9) 但是,当num=178时,它给了我0

>>> sum(sum(num[j] for j in range(0, i+1) if num[j] > 4) for i in range(len(num)))
34
>>> def morethanfour(number):
        return sum(sum(range(5,x+1)) for x in map(int,str(number)) if x>4)

>>> morethanfour(9)
35
>>> morethanfour(4567)
34
>>> morethanfour(178)
44

我不理解问题的描述。如果你创建一个例子,你会得到更多更好的答案。尤其要确保输入和预期的测试数据是完整的(不是伪数据),并且可以很容易地剪切和粘贴到编辑器中,以允许测试建议的解决方案。@Stephenruch:在总体方案中,这已经是非常小的。他们有一个只有几行的单一函数,还有一个示例,说明了他们的代码给出了什么,以及他们希望它给出什么。@BillLynch我希望得到的是更多的数据。。。。语句
后面的所有数字对我来说都是模糊的。嗯,我错过了
num
的范围。只看到函数外的
num
变量;这个答案是使用函数中的一个。很抱歉但在15分钟以上的时间过去后,不能撤回投票。谢谢你的澄清。